bla*_*kik 20 required asp.net-mvc-3 drop-down-menu
我在cshtml文件中有一个dropdownlist:
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)
Run Code Online (Sandbox Code Playgroud)
在我的viewModel中,我有没有任何注释的属性为Required:
public long KategoriaWlasnaId { get; set; }
Run Code Online (Sandbox Code Playgroud)
但该领域仍然是必需的.在浏览器中我得到:
<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>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
Dar*_*rov 44
这很正常.始终需要值类型.您可以使您的财产可以为空:
public long? KategoriaWlasnaId { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在它将不再需要,如果用户没有在下拉列表中选择任何元素,则其值将是null.如果你想使它成为必需和个性化的消息,你可以使用Required属性来装饰它:
[Required]
public long? KategoriaWlasnaId { get; set; }
Run Code Online (Sandbox Code Playgroud)
您可以修改默认值,DataAnnotationsModelValidatorProvider以便通过Global.asax.cs在Application_Start方法中添加以下行来不需要值类型:
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new DataAnnotationsModelMetadataValidatorProvider());
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10369 次 |
| 最近记录: |