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

时间:2011-06-18 22:24:38

标签: asp.net-mvc-3 c#-4.0 redirect http-status-code-302

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

感谢。

1 个答案:

答案 0 :(得分:9)

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

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

当调用Foo操作时(可能在新窗口内),它将执行处理并向客户端返回302 HTTP状态代码,其新位置为/SomeController/SomeAction

如果您想重定向到应用程序的某个外部网址,则可以执行以下操作:

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
)