1

У меня есть форма, и в этой форме у меня есть поля, которые из модели. Форма представляет собой модальный диалог из бутстрапа. Когда я нажимаю кнопку отправки, все поля должны быть действительными. Это работает! Теперь я хочу закрыть модальный и обновить страницу, если проверка модели действительна. Только код сначала вызывает вызов Ajax, а затем ModelState.IsValid в контроллере.Do Ajax после проверки MVC

Ajax:

$('#addAlertModal form').submit(function (e) { 

     //TODO: if ModelState.IsValid in Controller 
     refreshAlerts(); 
     closeAlertModal(); 
    }); 

Знает ли кто-то, что я могу сделать по этому поводу? Или это невозможно?

EDIT:

Или можно вызвать функции Ajax внутри if:

 @if (ViewData.ModelState.IsValid) { 
      //Call here the functions 
      refreshAlerts(); //Error: The name 'refreshAlerts' does not exist in the current context 
     } 

ответ

0

У меня есть это:

@using (Ajax.BeginForm("Index", "ManageAlert", FormMethod.Post, new AjaxOptions { UpdateTargetId = "addAlertModal", InsertionMode = InsertionMode.Replace, OnSuccess = "afterSubmit(data)"})) 
{ ... } 

function afterSubmit(data) { 
    if (data.success === true) { 
     refreshAlerts(); 
     closeAlertModal(); 
    } 
} 

И в модели я вернуться:

return Json(new { success = true }); 
0

Попробуйте использовать ViewData.ModelState.IsValid в представлении

$('#addAlertModal form').submit(function (e) { 

    @if (ViewData.ModelState.IsValid) 
    { 
     refreshAlerts(); 
     closeAlertModal(); 

    } 
}); 
+0

Нет жаль, что не работает не – Jeffrey

+0

Ok я теперь знаю, что '@ if (ViewData.ModelState.IsValid) 'работает, но теперь я не могу назвать методы ajax – Jeffrey

1

Попробуйте, как это,

$("#YourbuttonId").click(function() { 

         var validation = $("#FormId"); 
         if (!validation.valid()) { 
           return false; 
         } 
         else { 
          refreshAlerts(); 
          closeAlertModal(); 
          } 
        }); 
+0

Это не работает! У меня есть требования в Модели, а не в представлении! Теперь валидация будет всегда верной. – Jeffrey

0

Почему бы вам не использовать событие, чтобы при правильной проверке вы закрыли страницу и обновили ее. вам нужно использовать триггер, и все.

http://api.jquery.com/category/events/ http://api.jquery.com/trigger/

+0

Я точно не знаю, что вы имеете в виду! Можете ли вы позволить мне увидеть его с помощью какого-то кода? – Jeffrey

Смежные вопросы