обработка ошибок в форме в диалоговом окне jquery ui - PullRequest
2 голосов
/ 15 сентября 2010

Я использую диалог jquery ui и отображаю форму:

$("#detailView").dialog({
    resizable: false,
    height: 'auto',
    autoOpen: false,
    width: 1000,
    modal: true,
    buttons: {
        'Close': function () {
            closeModalPopup();
        }
    }
});

У меня есть кнопка внутри формы (не кнопки диалога). Когда я нажимаю эту кнопку, я отправляю ajax на сервер, используя следующий код:

 $('.button').live('click', function () {

    $.post('/MyController/Update', $("#myForm").serialize(), function (data) {

        if (data == "Update Complete") {
            closeModalPopup();
        }
        else {
            $("#detailView").html(data);
        }
    }, "html");
});

Если сообщение успешно, я возвращаю «Обновление завершено», которое просто идет и закрывает диалоговое окно jquery UI.

проблема в том, что, когда это терпит неудачу, и у меня есть ошибка, я делаю это в моем действии контроллера:

        if (!validationResult.IsValid)
        {
            validationResult.AddToModelState(ModelState, null);
            return PartialView("DetailContent", hireRequest);
        }
        else
        {
            return Content("Update Complete");
        }

this должен поразить случай "else" в обратном вызове javascript и показать новое содержимое в диалоговом окне, но, похоже, происходит то, что содержимое частичного результата отображается на полной базовой странице ( в отличие от модального диалога, где я хочу это

какие-либо предложения о том, что здесь происходит не так?

1 Ответ

1 голос
/ 15 сентября 2010

Вам, вероятно, следует создать другой контейнер (например, DIV), который будет целью вашего вызова AJAX, внутри контейнера #detailView, чтобы модальное диалоговое окно, созданное JQuery, не было перезаписано.

...