Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

ИЗМЕНИТЬ

Идея заключалась бы в том, чтобы иметь 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();
 }

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

Удачи!

Ответ 2

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

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

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

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

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