Как узнать количество ошибок в ASP.NET MVC View? - PullRequest
6 голосов
/ 10 февраля 2010

Я хочу отформатировать заголовок моего ValidationSummary, используя строку типа:

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

Как узнать количество ошибок, не делая это в контроллере и не добавляя его в ViewData?

Ответы [ 2 ]

17 голосов
/ 10 февраля 2010

Я предполагаю, что вы имеете в виду с точки зрения. Следующее не проверено.

ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()
2 голосов
/ 10 февраля 2010

Если вы имеете в виду ASP.NET MVC 1.0 версии IEnumerable<RuleViolation>, вы можете получить счет следующим образом:

var errorCount = GetRuleViolations().Count();

Чтобы получить этот счетчик в представлении, не помещая его в данные представления, вы можете создать перегрузку для метода расширения HidmlHelper ValidationSummary, который возвращает текст, который включает счетчик ошибок. Это дает вам доступ к количеству ошибок из метода расширения.

Чтобы увидеть код в исходном методе расширения ValidationSummary, вы можете использовать Reflector для его декомпиляции или загрузить исходный код ASP.NET MVC из Codeplex.

Обратите внимание, что механизм проверки существенно изменился в ASP.NET MVC 2.0.

...