ASP MVC 4中的重定向操作如何避免使用302状态码?

3

如何在ASP MVC 4中重定向页面?

我尝试过RedirectRedirectPermanentRedirectToAction等方法。但它们类似于HTTP重定向(使用http-equiv refresh),而不是头部重定向。它会首先显示头部状态302,然后才会重定向。我希望有像php header('location:/');这样的头部重定向。

[HttpGet]
public ActionResult SignOut()
{
    UtilsHelper.NoCache();
    session.Destroy();
    return RedirectToAction("Index", "Home");
}

直接调用控制器方法。请参见此处的示例。 - Robert Harvey
但是,我想要重定向,而不是显示来自不同控制器方法的结果。 - Bias Tegaralaga
3
不,你不需要这样做。如果你真的想要重定向,你应该使用302状态码,这是语义上正确的做法。 - Robert Harvey
退出时的重定向怎么样? - Bias Tegaralaga
怎么样?返回一个合适的视图。 - Robert Harvey
2个回答

3

如果您真的担心重定向代码,可以在较低级别上控制它。

[HttpGet]
public ActionResult SignOut()
{
    UtilsHelper.NoCache();
    session.Destroy();
    HttpContext.Response.Clear();
        HttpContext.Response.StatusCode = 302; //change it to 301?
        HttpContext.Response.RedirectLocation = "/";
        HttpContext.Response.End();
}

我不确定这里的302问题是什么?

返回值怎么样? - Bias Tegaralaga
@BiasTegaralaga 虽然应该返回一些东西,但它会先重定向,所以返回值并不重要。 - Anirudha Gupta

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接