2016-08-02 3 views
1

Вот мой контроллер действия:MVC Ajax.BeginForm не показывает ошибки проверки

[HttpPost] 
     public ActionResult CreateModal(MyModel myModel) 
     { 
      if (ModelState.IsValid) 
      { 
       //success logic 
      } 
      return PartialView("_MyPartial", myModel); 

     } 

И мое частичное (это в диалоговом окне JQuery):

@using (Ajax.BeginForm("CreateModal", "MyController", new {area = "MyArea2"}, new AjaxOptions() {HttpMethod = "POST", InsertionMode = InsertionMode.Replace})) 
    { 
     @Html.AntiForgeryToken() 
     @Html.ValidationSummary(true, "", new {@class = "text-danger"}) 
     <div class="row"> 
      <fieldset> 
       <legend>Info</legend> 
       <div class="row"> 
        <div class="form-group col-md-4"> 
         @Html.LabelFor(model => model.Name, htmlAttributes: new {@class = "control-label"}) 
         @Html.EditorFor(model => model.Name, new {htmlAttributes = new {@class = "form-control"}}) 
         @Html.ValidationMessageFor(model => model.Name, "", new {@class = "text-danger"}) 
        </div> 
       </div> 
       </fieldset> 
       </div> 
       } 

я могу отправлять сообщения в действие только штрафом , но если мой ModelState недействителен, я не получаю ошибок проверки на return PartialView("_MyPartial", myModel), хотя при переходе через отладчик я вижу ошибки.

Я использую последние версии jquery и связанных с ними технологий от nuget.

Кроме того, не уверен, если это имеет значение, но я отправляю от MyArea1 контроллеру в MyArea2. _MyPartial живет в общей папке.

+1

Вы не указали 'UpdateTargetId' в' AjaxOptions' (и почему бы вам не осуществлять ненавязчивый проверки на стороне клиента, чтобы предотвратить формы представления, если его недействительным?) –

+0

Я был под впечатлениями, мне не нужен UpdateTargetId, если я возвращаю весь частичный вид. – RJP

+0

@StephenMuecke как реализовать ненавязчивую проверку на стороне клиента? – Alex

ответ

0
AjaxOptions(){ 
    ... 
    OnComplete = "ParsUnob" 
    ... 
} 

Script Код:

function ParsUnob() { 
    $.validator.unobtrusive.parse("form"); 
} 
Смежные вопросы