Проверка на уровне модели означает, что механизм связывания Mvc по умолчанию не знает, какие свойства вы проверяете.
Asp.net Mvc не имеет встроенной поддержки для отображения ошибок на уровне модели и выделения свойств в представлении для этого валидатора.
Я мог бы сделать что-то подобное для достижения визуального результата
<%var passwordCssClass = ViewData.ModelState["Key"] != null && ViewData.ModelState["Key"].Errors.Any() ? "model-error" : string.Empty; %>
<%= Html.PasswordFor(x => x.Password, new { @class = passwordCssClass })%>
<%= Html.PasswordFor(x => x.PasswordConfirm, new { @class = passwordCssClass })%>
Вы должны проверить ModelState на наличие ключа, который ModelBinder использует для ошибки проверки на уровне модели. Замените «Ключ» выше на то, что вы найдете, а затем измените класс css на ваш класс css ошибки.
Это не код производственного уровня, вам нужно настроить Any () и убедиться, что это правильное сообщение об ошибке, которое вы ищете, и, возможно, даже переместить логику для этого в контроллере и предоставить представление с CssClass следует использовать через вашу модель. Но, надеюсь, это поможет вам.