Validation 防止MVC4 SelectList被';必需的';

Validation 防止MVC4 SelectList被';必需的';,validation,razor,asp.net-mvc-4,data-annotations,Validation,Razor,Asp.net Mvc 4,Data Annotations,我在Razor页面中有一个SelectList,用户可以在其中选择项目,也可以不选择他们认为合适的项目 所选项值是一个整数,它是实体框架数据库第一个表/类中的一个属性,我有一个与元数据关联的buddy类-但是该值没有任何重要的元数据,并且肯定不是所需的属性。我之所以提到它,是因为我已经导入了System.ComponentModel和System.ComponentModel.DataAnnotations,这可能会对事情产生一些影响 在Razor页面中,我有: @Html.DropDownLi

我在Razor页面中有一个SelectList,用户可以在其中选择项目,也可以不选择他们认为合适的项目

所选项值是一个整数,它是实体框架数据库第一个表/类中的一个属性,我有一个与元数据关联的buddy类-但是该值没有任何重要的元数据,并且肯定不是所需的属性。我之所以提到它,是因为我已经导入了System.ComponentModel和System.ComponentModel.DataAnnotations,这可能会对事情产生一些影响

在Razor页面中,我有:

@Html.DropDownListFor(x => x.blah, MySelectList, "(select)")
页面的源代码显示:

<select data-val="true" data-val-number="The field blah must be a number." data-val-required="The blah field is required." ...>

我没有要求“必需”,但它在那里:我如何抑制它

Crispin

我认为“blah”是一个整数。。。这是必须的。
您需要将blah设置为一个可为null的int。

这意味着要么更改数据库,要么放入一个临时变量,这两者都不理想。我真的只是在寻找一个验证“关闭”开关。顺便说一句,您应该在视图中使用ViewModels,而不是模型本身(绑定到数据库的模型)。如果您使用的是viewmodels,则会包含更改影响。我尝试过使用jQuery删除“data val”和相关属性,看看这是否有帮助,但添加的不引人注目的验证属性似乎是在我的$(function(){…})之后开始的;关于视图模型,我同意。这是一个老项目,现在我将使用代码优先EF、视图模型、健康剂量的knockout.js等。然而,正如一位智者所说,“永远不要低估工作代码的价值”。