none
Response.Redirect в новом окне. RRS feed

Ответы

  • Придумал, как можно сделать.

    В form вызову новую страницу. В ней будет выполнение кода и Redirect на другую страницу. Посетитель только заметит открытие страницы в новом окне.

    Вот и всё!!! 

    И без Js и без различных заморочек.
    4 апреля 2014 г. 5:05
  • Можно просто создать страницу с названием Redirect.

    Ссылки на эту страницу делать так:

    <form method="POST" id="MyName" action="Redirect" target="_blank">
    <input type="hidden" name="Name" value="MyName">
    </form>
    <a href="Здесь адрес страницы или сайта" onclick="document.getElementById('MyName').submit(); return false">MyName</a>

    По ссылке страница Redirect открывается в новом окне. В ней прописан код:

    if (IsPost)
    {
    switch (Name)
    {
    case "MyName": Response.Redirect("Здесь адрес страницы или сайта"); break;
    }
    }

    Открывается нужная страница в новом окне.

    На странице Redirect можно ещё какой либо код выполнить.

    Ну, а если ни какого кода не надо выполнять, то редирект можно делать через web.config.

    Вот как то так. Надеюсь смысл понятен.




    4 апреля 2014 г. 8:53

Все ответы

  • Можно, если в ответ записать скрипт c window.open, но лучше это делать без редиректов, а прямо из кода JS  в браузере.

    Сделаем содержимое сообщества лучше, вместе!

    31 марта 2014 г. 19:08
    Модератор
  • Просто после выполнения кода нужно открытие страницы в новом окне. Без Джава.
    31 марта 2014 г. 19:13
  • А можно в web.config сделать редирект с открытием нового окна?

        <rule name="Site" stopProcessing="true">
          <match url="Sites"/>
            <action type="Redirect" url="http://mysite.ru"/>
        </rule>
    
    Этот редирект в том же окне.
    31 марта 2014 г. 19:38
  • @Html.ActionLink( "Some link", "Foo", "SomeController", null,  new { target = "_blank" });

    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    31 марта 2014 г. 19:52
  • Для ActionLink пишет ошибку: "System.Web.WebPages.Html.HtmlHelper" не содержит определение для "ActionLink". Не удалось найти метод  расширения "ActionLink", принимающий первый аргумент типа "System.Web.WebPages.Html.HtmlHelper"  (пропущена директива using или ссылка на сборку?)
    1 апреля 2014 г. 4:45
  • System.Web.Mvc.Html

    для этого трюка вам надо сделать контроллер SomeController, а в нем return Redirect("msdn.com"); тогда он откроется в новой вкладке, лучше сделать 1 хороший контроллер для таких случаев, прикрутить returnUrl, и не париться


    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    1 апреля 2014 г. 12:40
  • Код к осмотру, пожалуйста. Или ссылку.

    2 апреля 2014 г. 7:23
  • public class RedirectionController : Controller
        {
    public ActionResult RedirectionToAnotherWeb(string returnUrl)
            {
                    return View(returnUrl);
            }
        }

    Redirection Controller

    @model string <meta http-equiv="refresh" content="15"; URL="@Model"> <p>Вы перенаправитесь на страницу @Model через 15 сек</p>

    RedirectionToAnotherWeb.cshtml

    @Html.ActionLink("Microsoft Forum", "RedirectionToAnotherWeb", "Redirection",
         new { returnUrl = "http://microsoft.com" }, null)

    ActionLink в странице

    ну примерно так вот можно


    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    2 апреля 2014 г. 12:25
  • А какие @using надо прописать в контроллере. У меня прописано:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    Выдаёт ошибку: Не удалось найти имя типа или пространство имён. Пропущена директива using или ссылка на сборку.

    Да и

    @Html.ActionLink

    Такую же ошибку выдаёт.

    С контроллерами я никогда не работал.


    2 апреля 2014 г. 17:08
  • это ASP.NET MVC паттерн, http://asp.net, вообще то довольна популярная техника. но что бы не заморачиваться на такие мелочи(как редирект), вам придётся использовать Джава, что бы идти в ногу со временем. иначе большие усилия к мелочам просто никчерту

    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    2 апреля 2014 г. 18:57
  • С контроллерами я никогда не работал.
    похоже мы говорим о разных вещах. вам нужен редирект  на asp.web.forms? или просто html?

    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    3 апреля 2014 г. 3:22
  • Я уже писал: после выполнения кода нужно открытие страницы в новом окне.

    Вы слишком много пишете.

    Просто приведите код или дайте работающие ссылки на код.


    3 апреля 2014 г. 4:28
  • "Просто после выполнения кода нужно открытие страницы в новом окне. Без Джава." - без JS открыть новое окно не получится. Редирект просто запрашивает новую страницу.

    Сделаем содержимое сообщества лучше, вместе!

    3 апреля 2014 г. 18:11
    Модератор
  • Придумал, как можно сделать.

    В form вызову новую страницу. В ней будет выполнение кода и Redirect на другую страницу. Посетитель только заметит открытие страницы в новом окне.

    Вот и всё!!! 

    И без Js и без различных заморочек.
    4 апреля 2014 г. 5:05
  • "В form вызову новую страницу. В ней будет выполнение кода и Redirect на другую страницу. " - а как вы это сделаете?

    Сделаем содержимое сообщества лучше, вместе!

    4 апреля 2014 г. 5:53
    Модератор
  • Можно просто создать страницу с названием Redirect.

    Ссылки на эту страницу делать так:

    <form method="POST" id="MyName" action="Redirect" target="_blank">
    <input type="hidden" name="Name" value="MyName">
    </form>
    <a href="Здесь адрес страницы или сайта" onclick="document.getElementById('MyName').submit(); return false">MyName</a>

    По ссылке страница Redirect открывается в новом окне. В ней прописан код:

    if (IsPost)
    {
    switch (Name)
    {
    case "MyName": Response.Redirect("Здесь адрес страницы или сайта"); break;
    }
    }

    Открывается нужная страница в новом окне.

    На странице Redirect можно ещё какой либо код выполнить.

    Ну, а если ни какого кода не надо выполнять, то редирект можно делать через web.config.

    Вот как то так. Надеюсь смысл понятен.




    4 апреля 2014 г. 8:53
  • В итоге получается, что без участия пользователя или JS не получится. Т.е. редиректом новую страницу не открыть. Ладено, это уже не важно. Главное вы нашли решение своей проблемы.

    Сделаем содержимое сообщества лучше, вместе!

    4 апреля 2014 г. 11:30
    Модератор
  • открытие страницы в новом окне. Без Джава.

    . . .

    document.getElementById('MyName').submit();

    . . .


    if (Thread.Was == HelpFul) Mark.As(HelpFul); else if (Thread.Was == Answered) Mark.As(Answered); else Provide(More.Details);

    4 апреля 2014 г. 18:13
  • "document.getElementById('MyName').submit();" - это тоже JS.

    Сделаем содержимое сообщества лучше, вместе!

    6 апреля 2014 г. 9:52
    Модератор
  • Да, но это встроенное JS. Для него отдельно код можно и не писать.
    И JQueri загружать не надо.
    Чем меньше всякого всего, тем быстрее работает сайт.
    6 апреля 2014 г. 13:15