3

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

谢谢。

4

1 回答 1

11

在 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
)
于 2011-06-18T22:26:59.133 回答