在ASP.NET MVC中返回307临时重定向

时间:2009-10-29 14:15:19

标签: asp.net-mvc http redirect http-status-code-307

是否可以从ASP.NET MVC中的控制器返回307 Temporary Redirect

有时需要重新POST从一个表单提交到另一个URI的值。

使用JavaScript在客户端进行选择(从而绕过此问题)不是一种选择。

通过GET重定向不是一个选项,因为发布的数据包含一个8k字符串,这可能意味着URI对于某些(很多?)浏览器来说太长了。

这甚至可能吗?

3 个答案:

答案 0 :(得分:11)

要从MVC操作返回307重定向结果,请使用以下命令:

public ActionResult Action()
{
    string url = GetRedirectUrl()
    HttpContext.Response.AddHeader("Location", url);
    return new HttpStatusCodeResult(307);
}

答案 1 :(得分:2)

看看下面的文章 - 你可以使用相同的技术307:

301 Redirects

答案 2 :(得分:1)

ASP.NET Core

 public RedirectResult (string url, bool permanent, bool preserveMethod);

所以

return Redirect(url, false, false); // 302
return Redirect(url, true, false);  // 301
return Redirect(url, false, true);  // 307
return Redirect(url, true, true);   // 308