ASP.NET MVC 3 验证:禁用 JavaScript 时,DataAnnotation 属性是否无用



Scott Guthrie在一年多前写了一篇关于MVC 2:模型验证 ASP.NET 博客,在他的帖子中,控制器被调用ModelState.IsValid-method。从那以后,我们有了 ASP.NET MVC 3,其中包括对验证的相当大的更改。

但是调用ModelState.IsValid的要求是否仍然保持不变?如果网站访问者禁用了 JavaScript,并且网站开发人员忘记检查 ModelState.IsValid 的值,那么所有 DataAnnotation 属性都没用吗?

如果是,有没有办法解决这个问题?例如,是否可以注册一个全局过滤器,如果编码人员不注册,该过滤器始终记得检查模型的有效性事件?

客户端验证功能将被关闭。这就是为什么您绝不能只依赖客户端验证的原因。它不会影响使用服务器上注释的模型绑定器。这是该博客文章中的相关文本...

因为操作方法接受 "人"对象作为参数, ASP.NET MVC 将创建一个人员 对象并自动映射 传入表单输入值。 如 这个过程的一部分,它还将 检查是否 数据批注验证属性 对于 Person 对象有效。 如果 一切都是有效的,那么 ModelState.IsValid 检查在我们的 代码将返回 true – 在这种情况下 我们将(最终)拯救这个人 到数据库,然后重定向回 到主页。

最新更新