我在应用程序中使用带有C#的Razor,HTML5,MVC3,在用户点击链接后,我打开一个新窗口,进行一些处理,然后想要将具有302状态代码的窗口重定向到链接。
感谢。
答案 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
)