如何使用MVC3和ASP.Net执行302重定向?

ElH*_*aix 3 redirect http-status-code-302 c#-4.0 asp.net-mvc-3

我在一个应用程序中使用带有C#的Razor,HTML5,MVC3,在用户点击链接后,我打开一个新窗口,进行一些处理,然后想要将带有302状态代码的窗口重定向到链接.

谢谢.

Dar*_*rov 9

在ASP.NET MVC中执行此操作的正确方法是通过控制器操作返回重定向ActionResult.因此,在您在此窗口中调用的控制器操作中,执行处理只需返回正确的ActionResult即可执行重定向:

public ActionResult Foo()
{
    // ... some processing
    return RedirectToAction("SomeAction", "SomeController");
}
Run Code Online (Sandbox Code Playgroud)

Foo调用该操作时(可能在新窗口内),它将执行处理并将302 HTTP状态代码返回给具有新位置的客户端/SomeController/SomeAction.

如果要重定向到应用程序的某个外部URL,可以执行以下操作:

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

至于创建将在新窗口/选项卡中打开的链接,您可以将该target="_blank"属性附加到锚点上:

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