MVC注释验证删除data-val属性

Dee*_*ain 1 validation asp.net-mvc data-annotations asp.net-mvc-3

我有模特财产:

public int? RegionId { get; set; }
Run Code Online (Sandbox Code Playgroud)

我在视图中创建下拉列表:

@Html.DropDownListFor(m => m.RegionId, Model.Regions)
Run Code Online (Sandbox Code Playgroud)

在html中:

<select data-val="true" data-val-number="The field RegionId must be a number." 
</select>
Run Code Online (Sandbox Code Playgroud)

我需要删除属性data-val-number,因为在特定情况下它不适合我.

我在Application_Start中尝试:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Run Code Online (Sandbox Code Playgroud)

另请注意,RegionId可以为空.

如何在服务器端代码中删除此属性?(不是javascript)

Dee*_*ain 6

在List中需要添加此项:

new SelectListItem {Text = SiteResources.NotSelected,Selected = true, Value ="" } //(不是Value = null)

此项目对data-val-number有效

Application_Start中的另一种方式:

ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new DataAnnotationsModelValidatorProvider());
Run Code Online (Sandbox Code Playgroud)

但显然禁用所有简单类型的隐式DataAnnotation验证.