Как узнать, содержит ли ModelState ошибки - PullRequest
10 голосов
/ 18 января 2012

Когда в моем контроллере размещается форма, я делаю следующую проверку:

if(ModelState.IsValid)

Если модель недействительна, ошибки добавляются в ModelState.Затем модель передается в представление со сводкой проверки.

Однако я хочу проверить, есть ли в ModelState ошибки внутри обработчика jQuery ready, чтобы я мог добавить дополнительное поведение, если в форме есть ошибки.Это возможно?

Ответы [ 3 ]

28 голосов
/ 18 января 2012

Вы можете плюнуть на глобальную переменную javascript:

<script type="text/javascript">
    var isValid = @Html.Raw(Json.Encode(ViewData.ModelState.IsValid));
</script>

и затем:

$(function() {
    if (!isValid) {
        alert('opa');
    }
});
2 голосов
/ 09 июня 2013

небольшое дополнение к ответу @Dimitrov:

<script type="text/javascript">
    var isValid = '@Html.Raw(Json.Encode(ViewData.ModelState.IsValid))';

    if (isValid != 'true')
        // model has some errors...
</script>

Важно использовать одиночные кавычки вокруг помощника. В противном случае эта точка с запятой ; вызывает проблемы. Независимо от того, вы можете написать это, или вы не можете, во всех случаях это вызывает синтаксическую ошибку. Если вы не поместите эти одинарные кавычки вокруг помощника, как я уже говорил.

0 голосов
/ 07 июля 2017

В дополнение к Дарину Ответ:

В .cshtml:

@Html.Hidden("IsValid", Json.Encode(ViewData.ModelState.IsValid))

в JS

var isValid = $('#IsValid').val().toLowerCase() == "true";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...