Как отобразить ASP.NET MVC 3 view как всплывающее окно - PullRequest
4 голосов
/ 17 марта 2012

Мне нужно отобразить полный вид (веб-страницу .cshtml) в качестве всплывающего окна в ASP.NET MVC 3. В настоящее время веб-страница, которая становится всплывающим, контролируется контроллером MVC и ведет себя как другое представление. Всплывающая веб-страница будет отображаться при нажатии кнопки на другой веб-странице .cshtml, и я не хотел бы выходить из исходного представления при нажатии кнопки. Я думаю об использовании jquery.show (), чтобы сделать представление всплывающим, хотя это не является обязательным требованием. Какие изменения мне нужно сделать?

Ответы [ 3 ]

5 голосов
/ 17 марта 2012

Сделайте ajax-вызов jquery следующим образом:

      $.ajax({
            url: /myController/Popup,
            type: 'GET',
            data: id,
            success: function (result) {
                $("#myTag").html(result);
             }
      });

Затем в контроллере просто вернуть частичное представление, примерно так:

   public ActionResult Popup(int id)
    {

        /* construct the viewmodel */
        myViewModel = ....
        .
        return PartialView("MyPartialView", myViewModel);
    }

Этот частичный вид будет добавлен в myTag.

2 голосов
/ 17 марта 2012

Сделайте ajax-вызов для URL действия, что-то вроде ...

$.ajax({
         url: "@Url.Action("youractionname")"
        ,type: "POST"
        ,data: data
        ,success: function(response)
        {
            $(document).append("<div class='popup'>" + response + "</div>");
        }
    });

Очевидно, что ваш html может потребоваться немного скорректировать, возможно, модальный div, чтобы заблокировать доступ к странице ниже, и нужно определить .popup, чтобы он выглядел как всплывающее окно.

0 голосов
/ 17 марта 2012

Один из способов сделать это - использовать http://fancybox.net/ и просто загрузить новую веб-страницу в виде iframe внутри fancybox. Проверьте на fancybox примеры в нижней части.

jQuery.show () не имеет ничего общего с созданием всплывающих окон. Используется для скрытия / отображения элементов в DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...