MVC-всплывающие окна - PullRequest
       9

MVC-всплывающие окна

11 голосов
/ 26 января 2011

Мне нужно создать всплывающие окна в MVC (не новая вкладка в браузере). Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

37 голосов
/ 26 января 2011

Одной из возможностей является использование диалогового окна jquery ui .

РЕДАКТИРОВАТЬ

Идея состоит в том, чтобы иметь действие ajax, которое возвращает частичноеПосмотреть.Результат этого действия (html) помещается в контейнер всплывающего окна, и в обработчике успеха вызова ajax вы открываете всплывающее окно.Вот пример кода:

@Ajax.ActionLink("Open popup", "SomeAction", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "result", InsertionMode = InsertionMode.Replace, OnSuccess="openPopup" })<br />

<div id="result" style="display:none;"></div>

<script type="text/javascript">
$(document).ready(function() {
    $("#result").dialog({
        autoOpen: false,
        title: 'Title',
        width: 500,
        height: 'auto',
        modal: true
    });
});
function openPopup() {
    $("#result").dialog("open");
}
</script>

Затем вам нужно добавить действие в контроллер, который возвращает частичное представление

 [HttpGet]
 public PartialViewResult SomeAction()
 {
      return PartialView();
 }

Поместите все, что вам нужно, в частичное представление, вы можететакже включите параметры в действие и т. д.

Удачи!

3 голосов
/ 26 января 2011

Наиболее очевидным способом является использование одной из сред js. Лично я предпочитаю диалоговое управление jQuery UI.
Пожалуйста, проверьте http://jqueryui.com/demos/dialog/ для получения подробной информации об этом.
Также вы можете проверить ASP.NET MVC модальное диалоговое окно / всплывающая подсказка (этот вопрос похож на ваш)

Конечно, если вам нужно простое всплывающее окно, вы всегда можете использовать alert('Im popup');

Обновление по вашему последнему запросу
Чтобы открыть URL в новом окне, вы можете использовать следующий javascript:

function OpenDialog() {
window.open("some url", "DialogName", "height=200,width=200,modal=yes,alwaysRaised=yes");
}

Но результат действительно зависит от браузера. Большинство из них открывают это модальное окно не в новой вкладке, а в новом экземпляре браузера.
Эта тема может помочь вам также:
JavaScript открывается в новом окне, а не на вкладке

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