Как вы выполняете редирект 302 с использованием MVC3 и ASP.Net? - PullRequest
3 голосов
/ 19 июня 2011

Я использую Razor, HTML5, MVC3 с C # в приложении, где после того, как пользователь нажимает на ссылку, я открываю новое окно, выполняю некоторую обработку, затем хочу перенаправить это окно с кодом состояния 302 нассылка.

Спасибо.

1 Ответ

9 голосов
/ 19 июня 2011

Правильный способ сделать это в ASP.NET MVC - использовать действие контроллера, которое возвращает перенаправление ActionResult. Поэтому внутри действия контроллера, которое вы вызываете в этом окне и выполняете обработку, просто выполняете перенаправление, возвращая правильный ActionResult:

public ActionResult Foo()
{
    // ... some processing
    return RedirectToAction("SomeAction", "SomeController");
}

Когда вызывается действие Foo (предположительно внутри нового окна), оно выполнит обработку и вернет клиенту код состояния 302 HTTP с новым местоположением /SomeController/SomeAction.

Если вы хотите перенаправить на какой-либо внешний URL вашего приложения, вы можете сделать следующее:

public ActionResult Foo()
{
    // ... some processing
    return Redirect("http://someotherdomain.com/somescript");
}

Что касается создания ссылки, которая открывается в новом окне / вкладке, вы можете добавить атрибут target="_blank" на привязку:

@Html.ActionLink(
    "Some link",                 // linkText
    "Foo",                       // action
    "SomeController",            // controller
    null,                        // routeValues
    new { target = "_blank" }    // htmlAttributes
)
...