2016-06-28 2 views
3

У меня модальное всплывающее окно, но я хочу сделать проверку состояния модели на нем. Проблема в том, что если есть ошибка состояния модели, она возвращает страницу. Как вернуть данные во всплывающее окно, открыв всплывающее окно. Вот что у меня есть до сих пор:Возврат ActionResult для модального всплывающего окна после отправки

[HttpPost] 
public ActionResult SaveProject(AddstuffViewModel model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return PartialView("_Addstuff", model); 
    } 
} 



@model Models.AddStuffViewModel 

@using (Ajax.BeginForm(
    "SaveProject", "Projects", 
    new AjaxOptions { 
     HttpMethod = "POST", 
    }, 
    new { 
     id = "FormName", 
     role = "form" } 
    )) 
{ 
    <div class="panel-heading projectModal-heading"> 
     <h4 class="panel-title">Add stuff </h4> 
    </div> 
    <div class="panel-body"> 
     <p class="group"> 
       <div class="form-group"> 
        @Html.LabelFor(m => m. Stuffs.Name, new { @class = "control-label" }) 
        @Html.TextBoxFor(m => m.Stuffs.Name, new { @class = "form-control", @id = "InputName", @placeholder = "Stuffs Name" }) 
        @Html.ValidationMessageFor(m => m.Stuffs.Name, "", new { @class = "text-danger" }) 
       </div> 
       <div class="form-group"> 
        @Html.LabelFor(m => m.Stuffs.Description, new { @class = "control-label" }) 
        @Html.TextBoxFor(m => m.Stuffs.Description, new { @class = "form-control", @id = "InputDescription", @placeholder = "Description" }) 
        @Html.ValidationMessageFor(m => m.Stuffs.Description, "", new { @class = "text-danger" }) 
       </div> 
       <div class="form-group"> 
        @Html.LabelFor(m => m.Stuffs.Url, new { @class = "control-label" }) 
        @Html.TextBoxFor(m => m.Stuffs.Url, new { @class = "form-control", @id = "InputUrl", @placeholder = "Url" }) 
        @Html.ValidationMessageFor(m => m.Stuffs.Url, "", new { @class = "text-danger" }) 
       </div> 

      </div> 
     </p> 
    </div> 
    <div class="panel-footer"> 
     <input type="submit" value="stuff" class="btn btn-default" /> 
    </div> 
} 

Модаль открывается нормально, и все данные заселяются правильно. Я просто хочу оставить его открытым, когда метод SaveProject вернется.

+0

Вы пытались поместить @ Html.ValidationSummary (true) в форму? –

+0

Это не сработало, но спасибо. –

ответ

2

Ненависть, отвечая на мой вопрос, но у меня была ошибка id-10-T.

Я включил jquery.validate.unobtrusive вместо jquery.unobtrusive-ajax изначально. Я включил и то, и другое теперь прекрасно работает.

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