为了更清晰的说明这个问题,我使用了VS2013自动生成的MVC示例来演示,运行示例项目,点击注册页面,如图:
接下来给上面的注册增加一个“年龄条件”,找到RegisterModel,添加一个”Age”属性,但是,不加”[require]”,如图:
运行项目,回到注册页面,用户名,密码,确认密码都填,年龄项不填,点击注册,如图:
我们发现它提示 “年龄字段是必须的”,但是我并没有在 Age属性上加require属性,它怎么还会验证呢? 起初我还以为页面缓存原因,清空缓存,问题仍然存在。
于是Google,了解到这是MVC自动为我们处理的,对于值类型如:decimal,DateTime,int等,不管我们有没有加[require]属性,页面都会验证。解决方法是把该属性设成nullable类型,如上面Age属性修改为:
public int? Age { get; set; }
MVC模型验证:属性值无require,页面仍然验证问题,布布扣,bubuko.com
时间: 2024-10-16 11:25:27