我想使用类似以下的字符串来格式化我的验证摘要的标题:
"There are {0} errors on this page."
如何在不在控制器中执行并将其添加到 View Data 的情况下找出错误数量?
我想使用类似以下的字符串来格式化我的验证摘要的标题:
"There are {0} errors on this page."
如何在不在控制器中执行并将其添加到 View Data 的情况下找出错误数量?
我假设你的意思是从观点来看。以下内容未经测试。
ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()
如果您指的是 ASP.NET MVC 1.0 版本IEnumerable<RuleViolation>
,您可以通过以下方式获取计数:
var errorCount = GetRuleViolations().Count();
要将该计数放入视图而不将其放入视图数据中,您可以为 ValidationSummary HtmlHelper 扩展方法创建一个重载,该方法返回包含错误计数的文本。这使您可以从扩展方法中访问错误计数。
要查看原始 ValidationSummary 扩展方法中的代码,可以使用 Reflector 对其进行反编译,或者从 Codeplex 下载 ASP.NET MVC 源代码。
请注意,验证机制在 ASP.NET MVC 2.0 中发生了很大变化。
您还可以使用更简单的方法
@if (ViewData.ModelState.ErrorCount > 0)
{
...
}