Ответ 1
<%if (!Html.ViewData.ModelState.IsValid){%>
Как проверить, есть ли у Html.ValidationSummary() какие-либо ошибки?
Требуемый конечный результат:
<% if(I_HAVE_ERRORS) {%>
<div><%= Html.ValidationSummary() %></div>
<%}%>
Другими словами, как я могу определить "I_HAVE_ERRORS"?
<%if (!Html.ViewData.ModelState.IsValid){%>
Чтобы использовать синтаксис razor
@if (!Html.ViewData.ModelState.IsValid)
{
// show error
}
или вы можете завершить его как метод расширения
public static bool HasErrors(this HtmlHelper helper)
{
return helper.ViewData.ModelState.IsValid == false;
}
Используйте его как
@if (Html.HasError())
{
// show error
}
На самом деле, я думаю, что наиболее правильный способ проверки ошибок валидации (а не только автоматически сгенерированных на основе модели) был бы;
@if (Model.ViewData.ModelState.ErrorCount > 0)
{
}
Таким образом, он будет включать сгенерированные пользователем ошибки модели.
Если вам нужно проверить ошибки, не связанные с какими-либо конкретными полями, вы можете попробовать это:
@if(Html.ViewData.ModelState.ContainsKey(string.Empty))
{
<div class="panel panel-danger">
<div class="panel-heading">
@Html.ValidationSummary(true)
</div>
</div>
}