MVC模型验证:属性值无require,页面仍然验证问题
为了更清晰的说明这个问题,我使用了VS2013自动生成的MVC示例来演示,运行示例项目,点击注册页面,如图:
接下来给上面的注册增加一个“年龄条件”,找到RegisterModel,添加一个”Age”属性,但是,不加”[require]”,如图:
运行项目,回到注册页面,用户名,密码,确认密码都填,年龄项不填,点击注册,如图:
我们发现它提示 “年龄字段是必须的”,但是我并没有在 Age属性上加require属性,它怎么还会验证呢? 起初我还以为页面缓存原因,清空缓存,问题仍然存在。
于是Google,了解到这是MVC自动为我们处理的,对于值类型如:decimal,DateTime,int等,不管我们有没有加[require]属性,页面都会验证。解决方法是把该属性设成nullable类型,如上面Age属性修改为:
public int? Age { get; set; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。