【问题标题】:Validation / Error Messages in ASP.Net MVC 2 View Unrelated to a Property与属性无关的 ASP.Net MVC 2 视图中的验证/错误消息
【发布时间】:2010-09-27 22:38:39
【问题描述】:

我可以使用什么模式在 MVC 2 视图上显示与单个属性无关的错误?

例如,当我调用 Web 服务处理表单数据时,该 Web 服务可能会返回错误或抛出异常。我想显示该错误的用户友好版本,但没有逻辑方法将错误与模型的任何给定属性相关联。

更新:

尝试按照建议使用此代码,但未显示摘要消息:

MyPage.spark:

Html.ValidationSummary(false, "Oopps it didn't work.");

控制器:

ViewData.ModelState.AddModelError("_FORM", "My custom error message.");
// Also tried this: ViewData.ModelState.AddModelError(string.Empty, "My custom error message.");
return View();

更新 2

这是什么意思?

在每个字段旁边。

而不是总是显示所有 验证错误, Html.ValidationSummary 辅助方法 有一个只显示的新选项 模型级错误。这使 要显示的模型级错误 验证摘要和 要显示的特定于字段的错误 在每个字段旁边。

来源:http://www.asp.net/learn/whitepapers/what-is-new-in-aspnet-mvc#_TOC3_14

具体来说,如何向模型添加模型级别的错误(而不是特定于字段的错误)?

更新 3:

我今天早上注意到Html.ValidationSummary 根本没有显示任何错误,甚至没有显示属性错误。试图找出原因。

【问题讨论】:

标签: asp.net-mvc-2 validation


【解决方案1】:

只需将自定义错误添加到ModelState 对象并结合ValidationSummary() 扩展方法即可解决问题。我使用"_FORM" 之类的东西作为键...只是这样它就不会与任何字段冲突。

就模式而言,我已经对其进行了设置,以便我的业务逻辑层(通过控制器中的服务调用)将在我想要在视图上显示的任何预期错误时抛出自定义异常。此自定义异常包含一个 Dictionary<string, string> 属性,其中包含我应该添加到 ModelState 的任何错误。

HTH,
查尔斯

【讨论】:

  • 我正在按照您的建议进行操作。你能看看我更新的帖子,如果你发现问题,请告诉我?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多