Asp.net mvc 3 数据注释验证规则';必需的';不适用于';瓦查尔';(但与';int';配合使用效果良好)

Asp.net mvc 3 数据注释验证规则';必需的';不适用于';瓦查尔';(但与';int';配合使用效果良好),asp.net-mvc-3,entity-framework-4,data-annotations,scaffolding,Asp.net Mvc 3,Entity Framework 4,Data Annotations,Scaffolding,我使用DBContext生成器构建了带有EF 4.3(数据库优先)的MVC3应用程序,并使用脚手架选项模板创建了带有视图的控制器,因此它创建了一个带有模型(数据注释)客户端验证的视图,这取决于数据库中字段的属性 'fieldrequired'的客户端验证可以很好地处理数字字段,而不是nvarchar字段(至少在我的例子中是这样) 我的案子 验证规则'Required'适用于'Count'字段,但不适用于'Name'字段 你知道为什么你的模型包含[Required()]吗? 您的网页是否在字符串字

我使用DBContext生成器构建了带有EF 4.3(数据库优先)的MVC3应用程序,并使用脚手架选项模板创建了带有视图的控制器,因此它创建了一个带有模型(数据注释)客户端验证的视图,这取决于数据库中字段的属性

'fieldrequired'
的客户端验证可以很好地处理数字字段,而不是nvarchar字段(至少在我的例子中是这样) 我的案子

验证规则
'Required'
适用于
'Count'
字段,但不适用于
'Name'
字段


你知道为什么你的模型包含[Required()]吗? 您的网页是否在字符串字段中包含datal val*属性


如果您想要客户端验证,您应该使用属性,或用于自定义验证的IValidateableObject接口或fluent api(注意,后两个仅在服务器端,但在处理后可以向客户端显示消息),不要依赖数据库错误冒泡(如果根据我上面的理解,您是这样做的)

你能发布你的数据批注验证属性和字段吗?@FabioMilheiro,我没有为数据批注编写任何属性,我依赖于DB中字段的属性(例如:当字段不为null时,“允许null=No”意味着当字段为int时也需要它,因此字段必须是数字)。Mmm。。抱歉,我倾向于认为数据注释比代码更重要。从未使用过代码优先这么好luckDo您的意思是不支持此选项,我想从数据库中检索数据注释,以获得简单的约束,如长度和可空性。如果您使用Entity Framework Power Tools,它将查询数据库并创建代码优先模型。在这里查看我的视频:安装电动工具后,右键单击项目并在上下文菜单上选择“实体框架”菜单,然后选择“首先反向工程代码”。然后,它将为fluentapi创建类和映射类。注意:这不会提供客户端验证,它必须往返到服务器。如果使用MVC4,它将在服务器上捕获这些验证;如果使用mvc3,则不会捕获这些验证;您将需要一个操作过滤器来处理这些异常。如果需要客户端,则必须手动添加数据注释。我不知道有什么可以为你生成它们
table/class -> Table1
    id
    Name -> nvarchar(50) -> not allow null
    Count -> int -> not allow null