MVC3 Razor Просмотр всплывающих окон - PullRequest
1 голос
/ 15 марта 2012

Я использую модальное всплывающее окно jquery в своем приложении с представлением MVC3 Razor.

Проблема в том, что мне нужно открывать всплывающее окно, как только я нажимаю на «Параметры меню», эти параметры меню есть на странице «Макет» (потому что мне нужно показать его на всем сайте). Мне нужно иметь всплывающий HTML-код на Layeout, поэтому он отображается как скрытый во всех источниках страницы.

Так есть ли лучший способ, с помощью которого я могу создавать всплывающие HTML только во время выполнения?

Я использую это прямо сейчас:

$(id).dialog({
            closeOnEscape: true,
            draggable: true,
            resizable: false,
            dialogClass: clz,
            modal: true,
            title: $(id + ' .dialog-content').attr('title'),
            closeText: ''
        });

1 Ответ

3 голосов
/ 15 марта 2012

Вы можете использовать Плагин JQuery UI Dialog и использовать его для загрузки модального диалога через ajax

Пример

$('#MyAtag').click(function () {
// Add a container for the modal dialog, or get the existing one
var dialog = ($('#ModalDialog').length > 0) ? $('#ModalDialog') : $('<div id="ModalDialog" style="display:hidden"></div>').appendTo('body');
// load the data via ajax
$.get( 'mycontroller/myaction', {},
    function (responseText, textStatus, XMLHttpRequest) {
        dialog.html(responseText);
        dialog.dialog({
            bgiframe: true,
            modal: true,
            width: 940,
            title: 'My Title'
        }); 
    }
);
});

, который связываетвызов ajax 'get' для события 'click' ссылки.Запрос get ajax возвращает частичное представление соответствующего действия в вашем проекте MVC, которое затем отображается в модальном диалоговом окне.

Вот примерный пример того, как может выглядеть контроллер:

public ActionResult MyAction()
{
    // Do Some stuff
    //...

    // If the request is an ajax one, return the partial view
    if (Request.IsAjaxRequest())
        return PartialView("PartialViewName");

    // Else return the normal view
    return View();
}

Это то, что вы хотите?

...