【发布时间】:2011-06-18 22:24:38
【问题描述】:
我在一个应用程序中使用 Razor、HTML5、MVC3 和 C#,在用户点击一个链接后,我打开一个新窗口,进行一些处理,然后想用 302 状态代码将该窗口重定向到链接。
谢谢。
【问题讨论】:
标签: asp.net-mvc-3 c#-4.0 redirect http-status-code-302
我在一个应用程序中使用 Razor、HTML5、MVC3 和 C#,在用户点击一个链接后,我打开一个新窗口,进行一些处理,然后想用 302 状态代码将该窗口重定向到链接。
谢谢。
【问题讨论】:
标签: asp.net-mvc-3 c#-4.0 redirect http-status-code-302
在 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
)
【讨论】: