Закрыть модальное окно, содержащее форму ASP MVC AJAX

в WebApp I Используя форму ASP MVC AJAX в модальном окне. Я не использую какой-либо определенный код jQuery, только некоторые для открытия модального окна (т. Е. Функция ShowModal ()):

@Ajax.ActionLink("Open", "Add", "Home", new {id = Model.Id}, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "modal", OnSuccess = "showModal()"})

Этот код загружает мою форму (частичный вид) в Div И открывает его как модальное окно. В форме отправляют ActionResult, я просто использую объект ModelState по умолчанию, чтобы подтвердить его, и в случае ошибки я возвращаю один и тот же частичный вид, содержащий ошибки модели. Это работает нормально, за исключением следующей ситуации: когда Модель не содержит ошибок, которые я хочу автоматически закрыть модальное окно. Я попробовал следующее:

@using (Ajax.BeginForm("Save", "Home", new AjaxOptions {HttpMethod = "POST", UpdateTargetId = "modal", OnSuccess = "hideModal(); alert('Saved');"}))

Однако, когда модель содержит ошибки, вызов AJAX все еще действителен, поэтому outsuccess будет вызываться. Я пытался решить это, отправив Ошибка httpstatuscode на частичном представлении, но затем div не обновляется с новым HTML. Я думаю, что единственное решение отправляет частичный вид, содержащий код JavaScript, который закрывает модальное окно, когда модель не содержит ошибок, но это решение не очень аккуратно. Любые другие идеи?

5
задан Marthijn 15 September 2011 в 13:32
поделиться