为什么我的int?价值被验证,好像它是必需的?

And*_*ena 6 c# asp.net jquery-validate asp.net-mvc-3

我有一个int?查看在客户端验证的模型属性,就像它是必需的一样.也就是说,如果我将该字段留空,则不会提交.字符串属性不会发生同样的情况.

为我的编辑器呈现的HTML是:

<input type="text" value="" name="StatusIdSearch" id="StatusIdSearch" data-val-number="The field Status must be a number." data-val="true" class="text-box single-line">
Run Code Online (Sandbox Code Playgroud)

我认为这data-val-number会导致错误,因为没有什么不是数字,但我无法确定原因.

有任何想法吗?

编辑

视图模型:

public class CompromissoSearchModel
{
        // other properties removed for the sake of clarity

        [Display(Name = "Status")]
        [EnumDataType(typeof(StatusCompromisso))]
        public int? StatusIdSearch { get; set; }

       // other properties removed for the sake of clarity
}
Run Code Online (Sandbox Code Playgroud)

Sco*_*ith 1

您应该能够将以下代码添加到Application_StartGlobal.asax 文件中的方法中来解决此问题:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;