Как я могу вызвать диалоговое окно JQuery для закрытия из контроллера частичного представления MVC? - PullRequest
5 голосов
/ 16 мая 2011

У меня есть частичное представление, которое отображается внутри диалога JQuery. Я могу легко открыть и закрыть диалог, используя javascript, но не могу закрыть диалоговое окно из контроллера частичного представления.

Я думал, что смогу просто использовать JavascriptResult:

return new JavaScriptResult { Script = "$(\"#popupDiv\").dialog(\"close\");" };

Но это просто отображает JavaScript в браузере.

Какой способ оповещения моего диалогового окна JQuery закрывается из-за действия контроллера?

1 Ответ

5 голосов
/ 16 мая 2011

Вы упоминаете частичное представление и результат javascript, поэтому я предполагаю, что это частичное представление вызывается с использованием AJAX. Если это так, вы можете закрыть диалоговое окно в обратном вызове успеха:

$.ajax({
    url: '/someaction',
    success: function(result) {
        $('#popupDiv').dialog('close');
    }
});

Тогда вы можете заставить свое действие контроллера возвращать результат Json, указывающий на успех или неудачу этого действия. Затем в обратном вызове успеха вы можете проверить это значение и закрыть диалоговое окно, если все прошло нормально, и показать сообщение об ошибке, если возникла какая-либо проблема:

return Json(new { success = true });

и затем:

success: function(result) {
    if (result.success) {
        $('#popupDiv').dialog('close');
    } else {
        alert('Oops something went wrong, sorry');
    }
}
...