Asp.net-Mvc

在 ASP.NET MVC 中返回 307 臨時重定向

  • October 19, 2021

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

有時需要POST將從一個表單送出的值重新送出到另一個 URI。

使用 JavaScript 在客戶端進行選擇(從而繞過此問題)不是一種選擇。

通過 a 重定向GET不是一個選項,因為發布的數據包含一個 8k 字元串,這可能意味著 URI 對於某些(很多?)瀏覽器來說太長了。

這甚至可能嗎?

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

要從 MVC 操作返回 307 重定向結果,請使用以下命令:

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

引用自:https://stackoverflow.com/questions/1644045