Mimick ValidationSummary用于非模型错误

时间:2012-05-16 23:41:39

标签: c# .net asp.net-mvc design-patterns idioms

我见过开发人员“利用”ModelState.AddModelError()ModelState添加错误消息,即使这些错误与当前请求的模型验证无关。

我的看法是,重定向应该执行完全独立的“错误”操作并查看以显示错误消息。在这种情况下,会有一个专用的ErrorModel,它与@Html.ValidationSummary的呈现方式类似。

这导致了一个问题:是否存在其他人使用的惯用“ErrorModel”结构,和/或采用此模型并且有点模仿ValidationSummary提供的演示文稿的流行库/函数?

我可以创建自己的ErrorModel和ValidationSummary代码(我甚至可以复制MVC源代码),但我更喜欢使用库或遵循其他人在这种情况下使用的模式。

1 个答案:

答案 0 :(得分:1)

Imho可以将ValidationSummary用于此目的,这就是原因:

有4个版本,其中两个很重要:

Html.ValidationSummary()
Html.ValidationSummary(bool)

第二个仅用于显示模型错误,而不是属性错误。这意味着业务逻辑验证,如'乔不能在星期一进行预约'。第一个用于显示模型错误和属性错误。

这是Pro ASP.NET MVC3 Framework的解释:

  

ValidationSummary助手方法的一些重载允许我们   指定只显示模型级别错误。错误   我们到目前为止已经注册了ModelState   属性级错误,意味着值存在问题   为给定的属性提供并更改该值可以解决   问题。相比之下,可以使用模型级错误   两个或多个财产之间相互作用引起的一些问题   值。

所以基本上我会说:你做得很好,不要打扰。除非你当然有特定的理由。