C# ASP.NET MVC模型验证最佳实践
验证模型有两种主要方法C# ASP.NET MVC模型验证最佳实践,c#,asp.net-mvc,validation,C#,Asp.net Mvc,Validation,验证模型有两种主要方法 在每个操作中检查Model.IsValid 执行ActionFilterAttribute并检查 !actionContext.ModelState.IsValid每个请求都要全局注册 你用哪一种?它们的优点/缺点是什么?根据我的经验,检查模型。在每个动作中都有效是更好的方法 允许您更轻松地使用PRG(后重定向Get)模式 当用户提交无效的表单数据时,有时需要执行特定的操作 根据您的ViewModel,提交无效表单后可能需要重新填充字典 允许您显示操作成功/错误的特定消
Model.IsValid
ActionFilterAttribute
并检查
!actionContext.ModelState.IsValid
每个请求都要全局注册你用哪一种?它们的优点/缺点是什么?根据我的经验,检查
模型。在每个动作中都有效是更好的方法
- 允许您更轻松地使用PRG(后重定向Get)模式
- 当用户提交无效的表单数据时,有时需要执行特定的操作
- 根据您的ViewModel,提交无效表单后可能需要重新填充字典
- 允许您显示操作成功/错误的特定消息
我建议只在最基本的解决方案中使用全局actionfilteratAttribute
。在我看来相当广泛。无论如何,如果你要做的只是如果(!Model.IsValid),那么过滤器就是正确的。这并不总是正确的,有时您需要更多(更具体)的逻辑,然后必须在每个方法中完成…我使用自定义验证,而不是Model.IsValid。每一个模型都通过了它的验证。