2009-10-29 8 views
5

Ist es möglich, eine 307 Temporary Redirect von einem Controller in ASP.NET MVC zurückgeben?Zurück 307 temporäre Umleitung in ASP.NET MVC

I manchmal müssen POST die Werte von einem Formular zu einem anderen URI eingereicht werden.

Die Verwendung von JavaScript zur Auswahl auf der Client-Seite (um dieses Problem zu umgehen) ist keine Option.

Umleiten über eine GET ist keine Option, da die geposteten Daten eine 8k-Zeichenfolge enthalten, die wahrscheinlich bedeutet, dass die URI für einige (viele?) Browser zu lang wäre.

Ist das überhaupt möglich?

Antwort

3

Werfen Sie einen Blick auf die folgenden Artikel - Sie die gleiche Technik für 307 verwenden können:

301 Redirects

+0

Ich muss * manchmal * die Weiterleitungen basierend auf den übergebenen Daten vornehmen. Der Zugriff auf das Modell (wo die Logik ist) vom roadhandler scheint falsch. Eine Kopie der Logik im Routenplaner zu haben, scheint noch schlimmer zu sein. –

+0

Die Verwendung eines RouteHandler scheint jedoch eine gute Möglichkeit zu sein, dieses Problem zu lösen. - Nur nicht, wenn Logik involviert ist. –

+1

Sie könnten ein anderes Aktionsergebnis in diesem Fall erstellen - hier ist wieder ein Beispiel, das Sie ändern können: http://www.stum.de/2008/10/22/permanentredirektresult/ – FinnNk

6

eine 307-Redirect resultieren aus einer MVC-Aktion zurückzukehren, verwenden Sie die folgende:

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