我见过开发人员“利用”ModelState.AddModelError()
向ModelState
添加错误消息,即使这些错误与当前请求的模型验证无关。
我的看法是,重定向应该执行完全独立的“错误”操作并查看以显示错误消息。在这种情况下,会有一个专用的ErrorModel,它与@Html.ValidationSummary
的呈现方式类似。
这导致了一个问题:是否存在其他人使用的惯用“ErrorModel”结构,和/或采用此模型并且有点模仿ValidationSummary提供的演示文稿的流行库/函数?
我可以创建自己的ErrorModel和ValidationSummary代码(我甚至可以复制MVC源代码),但我更喜欢使用库或遵循其他人在这种情况下使用的模式。
答案 0 :(得分:1)
Imho可以将ValidationSummary用于此目的,这就是原因:
有4个版本,其中两个很重要:
Html.ValidationSummary()
Html.ValidationSummary(bool)
第二个仅用于显示模型错误,而不是属性错误。这意味着业务逻辑验证,如'乔不能在星期一进行预约'。第一个用于显示模型错误和属性错误。
这是Pro ASP.NET MVC3 Framework的解释:
ValidationSummary助手方法的一些重载允许我们 指定只显示模型级别错误。错误 我们到目前为止已经注册了ModelState 属性级错误,意味着值存在问题 为给定的属性提供并更改该值可以解决 问题。相比之下,可以使用模型级错误 两个或多个财产之间相互作用引起的一些问题 值。
所以基本上我会说:你做得很好,不要打扰。除非你当然有特定的理由。