2012-03-16 5 views
4

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

+0

здесь аккуратный [статья] (http://yassershaikh.com/how-to-create-a-modal-popup-in-asp-net-mvc-3-using-jquery/) для этого ... – Yasser

ответ

0

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

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

2

сделать вызов Ajax к URL действия, что-то вроде ...

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

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

5

Сделать JQuery Ajax вызов, как это:

 $.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.