0

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

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

这就引出了一个问题:是否存在其他人使用的惯用“ErrorModel”结构,和/或采用该模型并在某种程度上模仿 ValidationSummary 提供的表示的流行库/函数?

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

4

1 回答 1

1

恕我直言,为此目的使用 ValidationSummary 很好,这就是为什么:

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

Html.ValidationSummary()
Html.ValidationSummary(bool)

第二个旨在仅显示模型错误,而不是属性错误。这意味着业务逻辑验证,例如“乔无法在星期一进行约会”。第一个旨在显示模型错误和属性错误。

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

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

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

于 2012-05-17T00:41:37.000 回答