11

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

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

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

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

这甚至可能吗?

4

3 回答 3

14

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

public ActionResult Action()
{
    string url = GetRedirectUrl()
    HttpContext.Response.AddHeader("Location", url);
    return new HttpStatusCodeResult(307);
}
于 2014-12-12T00:50:05.440 回答
3

ASP.NET 核心

 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
于 2020-01-11T07:57:50.223 回答
2

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

301 重定向

于 2009-10-29T14:20:36.807 回答