Как мне получить доступ к ModelState из моего представления (страница aspx)?

114

Как мне получить доступ к ModelState из моего представления (страница aspx)?

Саджид Исмаил
источник
1
Я не думаю, что тебе стоит. Подобные вещи должны происходить в контроллере.
Мэтью Гроувс,
1
Мне нужно знать, действителен ли мой ModelState. Я не хочу этого делать: <% if (Html.ValidationSummary ()! = Null)%> <% {%> <p class = "validation-summary-errors"> Ваше сообщение не было отправлено. Исправьте ошибки ниже и попробуйте еще раз. </p> <%}%> Вместо этого я хочу сделать следующее: <% if (! ViewData.ModelState.IsValid) {%> <p class = "validation-summary-errors"> Ваше сообщение не было отправлено. Исправьте ошибки ниже и попробуйте еще раз. </p> <%}%>
Саджид Исмаил,
12
Звучит как достаточно веская причина для доступа к ModelState
BritishDeveloper
Нет ничего плохого в доступе к ModelState в представлении. Это часть ViewData.
kennythecoder

Ответы:

181

Используйте ViewContext.ViewData.ModelState.

Матиас Ф
источник
19
Также стоит отметить, что вы можете просто сделать, ViewData.ModelStateи если вы хотите отобразить некоторую условную разметку ошибок, вы можете сделать это следующим образом:@if (!ViewData.ModelState.IsValid)
The Muffin Man