2013-08-07 3 views
5

Мы используем Web-формы ASP.NET (а не MVC).ASP.NET Response.Redirect, чтобы открыть новое окно браузера?

Мой вопрос: Можно ли открыть новое окно браузера, используя обратную передачу, а затем несколько вариантов Response.Redirect?

+1

Пытались ли вы какие-либо вещь? –

+0

Response.Redirect не может открыть браузер как Response.Redirect - это серверная команда, и браузер не существует на сервере. Вам нужно бросить javascript код, чтобы открыть новое окно, как @ JLC007 предложить в его ответе. –

ответ

0

Короткий ответ? Номер

Длинный ответ:

ASP.NET является основой на стороне сервера, в то время как концепция браузера окон на стороне клиента один. Response.Redirect просто заканчивает отправку заголовка Location: [whatever the new url is] как часть выходного потока. Просто случается, что почти все браузеры обрабатывают этот заголовок, загружая URL-адрес, который находится в этом заголовке.

Самым безболезненным способом будет использование javascript на обратной стороне, чтобы открыть новое окно, как указано в ответе JLC007's. Другим возможным вариантом является использование атрибута target в визуализированной форме.

+0

Я полагаю, что «коротко» относительна, но когда наступает более длинный ответ? – Patrick

+0

Просто сейчас. Отвлекся. – rossipedia

+0

Я бы использовал другой источник при привязке к цели, а именно [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target). Хотя w3schools часто имеет достоверную информацию, возникает вопрос о качестве (http://www.w3fools.com/). – Patrick

6

Я не сталкивался с экземплярами, где Response.Redirect может перемещаться по открытию нового окна.

Вот способ сделать это не с помощью Response.Redirect, которые вы можете попробовать:

ScriptManager.RegisterStartupScript(this, typeof(string), "New_Window", "window.open('http://www.website.com', null, 'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", true); 
+0

Вы можете добавить '' _blank'' вместо 'null', но я его протестировал, и оба дают тот же результат. Он открывает новое окно. –

+0

Обратите внимание, что браузеры могут обрабатывать сценарии, выполняемые при загрузке страницы таким образом, как инициируемые по инициативе страницы, а не инициированные пользователем. Такие ссылки могут блокироваться всплывающими блоками. – Brian

0

Попробуйте это

ScriptManager.RegisterStartupScript(this, typeof(string), "openWindow", 
    "window.open('http://www.website.com', target="_blank", 
    'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", 
     true); 
+0

И это отличается от ответа JLC007, как? – Patrick

+0

Цель отличается от другой, и она используется для открытия нового окна. – Amit

Смежные вопросы