JavaScript открывается в новом окне, а не во вкладке

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

 Igor V Savchenko26 янв. 2011 г., 13:54
Я обновил свой ответ в соответствии с вашими последними требованиями (откройте URL-адрес в диалоговом окне). Я надеюсь, что это поможет вам :)

Ответы на вопрос(2)

в 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 открывается в новом окне, а не во вкладке

Решение Вопроса

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();
 }

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

Удачи!

 Igor V Savchenko26 янв. 2011 г., 14:14
Он открывает просто некоторый div, как содержимое диалога, не так ли? Но как открыть какую-то другую страницу в диалоге?
 Gorgsenegger04 апр. 2013 г., 15:09
У меня не получалось с самого начала, пока я не добавилjquery.unobtrusive-ajax.js (может быть, другие знали это, но я, будучи новичком в этом отношении, не ...).
 uvita26 янв. 2011 г., 13:59
Я отредактировал свой ответ, пожалуйста, проверьте его.
 uvita26 янв. 2011 г., 14:24
Этот код работал для меня (используя asp.net MVC 3 RTM). Вы можете указать, что вы хотите показать во всплывающем окне, указав имя действия и контроллер в параметрах AjaxActionLink. Каркас создает URL для вас в соответствии с вашей конфигурацией маршрутизации.
 Cipiripi26 янв. 2011 г., 13:18
Мне нужно передать URL-адрес, который будет открыт в модальном всплывающем окне, и я не уверен, как это сделать с помощью jquery. Есть идеи?

Ваш ответ на вопрос