asp.net-mvc-3 - ASP.Net MVC 3 - 使用 DataAnnotations 的不显眼的客户端验证 - 字段是必需的,但不应该是

标签 asp.net-mvc-3 data-annotations unobtrusive-validation

我在 MVC 3 中使用客户端、不显眼的验证。我有一个名为 MinPrice 的字段,仅用 DisplayName 和 Range 属性修饰。但客户端验证失败,提示“需要 MinPrice 字段”。我不知道为什么,而且我绝对没有在任何地方应用必需的属性。

    [DisplayName("Asking Price")]
    [Range(0, 99999999, ErrorMessage="Invalid number")]
    public int MinPrice { get; set; }

是什么原因造成的?

(注意:我可以看到 data-val-required="The Minprice field is required"属性呈现在 html 源代码中,所以与新的不显眼的例程有关的东西就是把它放在那里)。我在其他领域似乎没有这个问题..

最佳答案

仅供引用,这实际上与 Linq to SQL 无关。

隐式 [Required] 属性应用于 MinPrice,因为它是一个 int,根据定义,它是不可空的(与 int? 可以为空)。

此行为由

实现

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes

默认为真。

您可以通过在 Global.asax 中将其设置为 false 来禁用此行为

关于asp.net-mvc-3 - ASP.Net MVC 3 - 使用 DataAnnotations 的不显眼的客户端验证 - 字段是必需的,但不应该是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062868/

相关文章:

c# - Controller 范围之外的 ControllerContext 和 ViewData - MVC3 C#

asp.net-mvc - 是否可以从同一项目使用 WCF 服务?

asp.net-mvc - MVC 模型需要 true

jquery - MVC3 后不显眼的客户端验证但提交前 Hook 可用吗?

javascript - 如何通过 Unobtrusive Validation JS 给出警报框或关注发生的错误

c# - WebAPI 与 Ninject

jquery - mvc post 与 ajax 效果

asp.net-mvc - 如何仅在选择一个单选按钮时应用必填字段验证

asp.net-mvc-3 - 使用默认值注释模型上的属性

javascript - 条件不显眼的验证模式