【发布时间】:2014-11-18 20:07:19
【问题描述】:
我有一个具有多个枚举类型属性的模型。我使用新的 MVC Html 辅助方法调用 EnumForDropDownList 填充所有这些。其中一些是必需的,所以我添加了一个RequiredAttribute。不知何故,对于那些不需要的,我总是得到 ModelState=false 。我用调试器发现了这一点:
当我查看 Messages.resx 文件时,我可以看到“不能为空”错误是针对 RequiredAttribute:
<data name="PropertyValueRequired" xml:space="preserve">
<value>Cannot be empty</value>
</data>
知道我不明白
- 如果不需要验证失败的属性,为什么 ModelState 为 false。 (唯一的属性是 [Column] 映射)。
- 如果RequiredAttribute 以某种方式被隐式添加到这些属性中,那么为什么我不会像那些带有Required Attribute 的那样收到客户端验证错误?
附:如果我在这些属性上选择一个值,那么问题就会消失。
编辑:这是模型:
public class DocumentCitizen{
[Column("DOCID")]
public int? DocID { get; set; }
[Column("SOCIALCAT")]
public SocialCategory SocialCat { get; set; }
[Column("GENDER")]
public Gender Gender { get; set; }
[Column("APPTYPE")]
[Required(ErrorMessage="Please select the application type")]
public ApplicationType {get;set; }
}
【问题讨论】:
标签: asp.net-mvc requiredfieldvalidator modelstate