2009-10-29 11 views
5

¿Es posible devolver un 307 Temporary Redirect desde un controlador en ASP.NET MVC?Devolver 307 redireccionamiento temporal en ASP.NET MVC

I a veces necesidad de volver a POST los valores enviados de un formulario a otro URI.

El uso de JavaScript para hacer la selección en el lado del cliente (omitiendo así este problema) no es una opción.

Redirigir a través de GET no es una opción, ya que los datos publicados incluyen una cadena de 8k que probablemente signifique que el URI sería demasiado largo para algunos (¿muchos?) Navegadores.

¿Esto es posible?

Respuesta

3

Echa un vistazo al siguiente artículo - puede utilizar la misma técnica para 307:

301 Redirects

+0

Necesito * a veces * hacer los redireccionamientos basados ​​en los datos que se pasan. Acceder al modelo (donde está la lógica) del manipulador de ruta parece incorrecto. Tener [una copia de] la lógica en el manipulador de rutas parece aún peor. –

+0

Sin embargo, usar un RouteHandler parece una buena manera de resolver este tipo de problema. - Simplemente no cuando hay lógica involucrada. –

+1

Puede crear un resultado de acción diferente en cuyo caso - de nuevo aquí hay un ejemplo que puede modificar: http://www.stum.de/2008/10/22/permanentredirectresult/ – FinnNk

6

para devolver un resultado 307 redirección desde una acción MVC, utilice la siguiente:

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