在没有302状态代码的ASP MVC 4中重定向

时间:2013-06-12 03:40:36

标签: redirect asp.net-mvc-4

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

我已尝试过RedirectRedirectPermanentRedirectToAction等等。但它就像HTTP重定向(使用http-equiv refresh),而不是标头重定向。它将首先显示Header Status 302,然后重定向。我希望像php header('location:/');

中的标题重定向

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

2 个答案:

答案 0 :(得分: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这里有什么问题?

答案 1 :(得分:0)

您可以使用Server.Transfer而不是Response.Redirect

请参阅
How to simulate Server.Transfer in ASP.NET MVC?
了解更多信息