如何在ASP.NET MVC视图中查找错误计数?

7
我想使用类似以下字符串的格式来设置验证摘要的标题格式:
```

我希望能够使用一个字符串将我的验证摘要标题格式化:

```
"There are {0} errors on this page."

如何在不在控制器中添加并将其添加到视图数据中的情况下查找错误数量?

3个回答

18

我猜你的意思是从视图中获取。以下内容未经测试。

ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()

2
如果您正在参考ASP.NET MVC 1.0版本的 IEnumerable<RuleViolation>,可以通过以下方式获取计数:
var errorCount = GetRuleViolations().Count();

为了在不将其放入视图数据的情况下将该计数显示在视图中,您可以为ValidationSummary HtmlHelper扩展方法创建一个重载,返回包含错误计数的文本。这样,您就可以从扩展方法中访问错误计数。
要查看原始ValidationSummary扩展方法中的代码,您可以使用Reflector进行反编译,或者从Codeplex下载ASP.NET MVC源代码。
请注意,ASP.NET MVC 2.0中的验证机制已经发生了重大变化。

2

您也可以使用一种更简单的方法

@if (ViewData.ModelState.ErrorCount > 0)
{
  ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接