如何禁用 Controller 中单个操作的模型验证? 或者我可以通过在启动时在某处注册模型类型来按模型执行此操作吗?
我希望 ModelBinder 绑定(bind)到模型,但之后它不应该执行模型验证。
我不希望进行验证的原因是因为我试图将逻辑从 Controller 移动到服务层,该服务层将负责验证模型,因为我不能假设传递给服务的模型包含有效数据.
据我了解,这是推荐的方法(在 Controller 中没有逻辑),所以我觉得有点奇怪,我似乎无法找到有关如何禁用模型验证的任何信息(每个操作或每个模型类型) )。
请注意,我不想禁用整个 Web 应用程序的模型验证(通过删除验证提供程序),并且我不想禁用检查所发布的恶意代码的输入验证。
<小时/>更新
我正在使用 .Net 4.0 和 MVC 3 Preview 1
最佳答案
在检查模型是否有效之前删除不需要的项目
ModelState.Remove("Email");
if (ModelState.IsValid)
{
// your logic
}
关于asp.net-mvc - 在 Asp.Net MVC 中禁用模型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3578781/