Asp.net-Mvc-3
mvc dropdownlistfor 未標記為必需但仍是必需的
我在 cshtml 文件中有一個下拉列表:
var kategorie_wlasna = new SelectList( (from z in Model.Kategoria where !formReadOnly || z.Id == Model.KategoriaWlasnaId select z), "Id", "Nazwa"); ... @Html.DropDownListFor( model => model.KategoriaWlasnaId, kategorie_wlasna, "----", htmlClassDropDownListDef)在我的 viewModel 中,我的屬性沒有任何必需的註釋:
public long KategoriaWlasnaId { get; set; }但該欄位仍為必填項。在瀏覽器中我得到:
<select class="input-validation-error form_object1" data-val="true" data-val-number="The field KategoriaWlasnaId must be a number." data-val-required="The KategoriaWlasnaId field is required." id="KategoriaWlasnaId" name="KategoriaWlasnaId"> <option value="">-----</option> <option value="1227">Wykroczenie</option> <option value="1228">Przestępstwo</option> </select>我錯過了什麼?
這很正常。值類型始終是必需的。您可以使您的財產為空:
public long? KategoriaWlasnaId { get; set; }現在不再需要它,如果使用者沒有在下拉列表中選擇任何元素,它的值將是
null. 如果你想讓它成為必需的並個性化消息,你可以用 Required 屬性來裝飾它:[Required] public long? KategoriaWlasnaId { get; set; }