2009-01-19 17 views
7

Tengo algunas acciones POST en mi controlador que son afectadas por un par de acciones GET. Cuando la validación falla, quiero renderizar la vista de la acción de la que proviene el POST. Por ejemplo:ASPNET MVC: ¿Cómo encontrar la ruta del referer (sic)?

~/cuentas Puestos a ~/cuentas/desactivar - Render "índice" visión de error de validación ~/cuentas/Posts perfil a ~/cuentas/desactivar - rendir vista "perfil" de error de validación

Puedo sacar el referer (sic) de las variables del servidor y analizarlo para descubrir la acción, pero esperaba que hubiera algo incorporado que hiciera lo que yo deseara, o que alguien más lo hubiera hecho antes que yo. cuna desde.

Parece que la propiedad ControllerContext.RouteData solo tiene información sobre la solicitud actual, no la solicitud de referencia (sic) ...?

Estoy en ASP.NET MVC beta.

+0

También me gustaría saber si hay una forma de obtener la ruta sin un contexto HTTP. –

Respuesta

2

MVC Contrib incluye un método de extensión en String para obtener una ruta (específicamente, in here). En teoría, esto permitiría que lo hace

RouteData referrer = Request.UrlReferrer.PathAndQuery.Route(); 

o, por supuesto, envolver que en un método de extensión en HttpRequest por lo que sólo puede hacer

RouteData referrer = Request.ReferrerRoute(); 

Sin embargo, a que se destina para las pruebas unitarias y utiliza Rhino Se burla para crear la HttpContextBase que requiere GetRouteData(). La buena noticia es que parece salirse con la suya burlándose de muy poco, por lo que es posible que puedas evitar Rhino Mocks si creas tu propia clase FakeHttpContext derivada de HttpContextBase.

Cuestiones relacionadas