Я хочу отформатировать заголовок своего ValidationSummary с помощью строки что-то как:
"There are {0} errors on this page."
Как я узнаю количество ошибок, не делая его в контроллере и добавлении его к ViewData?
Я предполагаю, что вы имеете в виду из вида. Следующее не проверено.
ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()
Если вы имеете в виду версию IEnumerable
для ASP.NET MVC 1.0, вы можете получить счет следующим образом:
var errorCount = GetRuleViolations().Count();
Чтобы получить этот счетчик в представлении, не помещая его в поле зрения data, вы можете создать перегрузку для метода расширения ValidationSummary HtmlHelper, который возвращает текст, который включает количество ошибок. Это дает вам доступ к счетчику ошибок из метода расширения.
Чтобы увидеть код в исходном методе расширения ValidationSummary, вы можете использовать Reflector для его декомпиляции или загрузить исходный код ASP.NET MVC из Codeplex.
Обратите внимание, что механизм проверки существенно изменился в ASP.NET MVC 2.0.