2009-10-29 7 views
5

Est-il possible de renvoyer un 307 Temporary Redirect à partir d'un contrôleur dans ASP.NET MVC?Retour 307 Redirection temporaire dans ASP.NET MVC

I Parfois,POST doit renvoyer les valeurs soumises d'une forme à une autre URI. L'utilisation de JavaScript pour effectuer la sélection du côté client (contournant ainsi ce problème) n'est pas une option pour utiliser

La redirection via un GET n'est pas une option car les données postées incluent une chaîne de 8k qui est susceptible de signifier que l'URI serait trop long pour certains (nombreux?) Navigateurs.

Est-ce encore possible?

Répondre

3

Jetez un oeil à l'article suivant - vous pouvez utiliser la même technique pour 307:

301 Redirects

+0

Je dois * parfois * effectuer les redirections en fonction des données transmises. Accéder au modèle (où la logique est) du gestionnaire de route semble faux. Avoir [une copie de] la logique dans la routehandler semble encore pire. –

+0

Utiliser un RouteHandler semble être un bon moyen de résoudre ce genre de problème. - Juste pas quand il y a de la logique. –

+1

Vous pouvez créer un autre résultat d'action auquel cas - voici encore un exemple que vous pouvez modifier: http://www.stum.de/2008/10/22/permanentredirectresult/ – FinnNk

6

Pour retourner un résultat 307 redirect d'une action MVC, utilisez ce qui suit:

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