Мне нужно отобразить полный просмотр (.cshtml веб-страницу) в виде всплывающего окна в ASP.NET MVC 3. В настоящее время веб-страница для всплывающего окна управляется MVC контроллер и ведет себя как другое представление. Всплывающая веб-страница будет отображаться при нажатии кнопки с другой веб-страницы .cshtml, и я не хотел бы выходить из исходного поля при нажатии кнопки. Я думаю об использовании jquery.show(), чтобы сделать представление всплывающим, хотя это не является обязательным требованием. Какие изменения мне нужно сделать?Как отобразить представление ASP.NET MVC 3 как всплывающее окно
4
A
ответ
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.
здесь аккуратный [статья] (http://yassershaikh.com/how-to-create-a-modal-popup-in-asp-net-mvc-3-using-jquery/) для этого ... – Yasser