Return 307 Temporary Redirect in ASP.NET MVC

11.6k views Asked by At

Is it possible to return a 307 Temporary Redirect from a controller in ASP.NET MVC?

I sometimes need to re-POST the values submitted from one form to another URI.

Using JavaScript to do the selection on the client side (thereby bypassing this issue) is not an option.

Redirecting via a GET is not an option as posted data includes an 8k string which is likely to mean that the URI would be too long for some (many?) browsers.

Is this even possible?

3

There are 3 answers

5
FinnNk On BEST ANSWER

Take a look at the following article - you can use the same technique for 307:

301 Redirects

0
StriplingWarrior On

To return a 307 redirect result from an MVC action, use the following:

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

ASP.NET Core:

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

So

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