我在cshtml文件中有一个dropdownlistfor:
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; }
关于asp.net-mvc-3 - 未将mvc dropdownlistfor标记为必需,但仍必需,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7309577/