在许多在线示例和教程中,我们看到if (!ModelState.IsValid) { return View(model); }
或类似的东西。我已经编写了一个ModelState
过滤器来在每个动作执行之前进行实际检查。但是内置的组件模型属性非常有限:它们只使用可以在客户端本身进行的检查,不提供唯一性检查、针对数据库的单词过滤等方式。所以我经常发现自己在写我的服务层基础的一个伴侣,它涉及检查服务命令的“输入模型”的规则,如果它未能通过一些更详细的检查,则将其扔回去。
我的问题是,如果我不使用 Microsoft 提供的任何不显眼的 AJAX HTML 帮助程序,我是否有任何理由为非常基本的组件模型属性而烦恼?毕竟,它们要求您创建一个新模型、注释每个字段、使其与域模型保持同步等。
此外,如果使用 有好处ModelState
,那么将其连接到服务层验证检查的首选方法是什么?还是人们出于其他原因不这样做?