Soy bastante nuevo a MVC pero no está seguro exactamente qué redirección ... reemplaza el redireccionamiento estándar utilizado en formularios Web, es decir, la norma Response.Redirect()
ASP.NET MVC: ¿Cuál es la forma correcta de redirigir a páginas/acciones en MVC?
Por ejemplo, necesito redirigir a otras páginas en un par de escenarios:
1) Cuando el usuario cierra la sesión (Forms signout in Action) Quiero redireccionar a una página de inicio de sesión.
2) En un evento de controlador o base, por ejemplo Initialize
, quiero redirigir a otra página (AbsoluteRootUrl + controlador + Acción)
Parece que varias redirecciones las llaman en algunos casos, lo que provoca errores, algo que Qué pasa con el hecho de que una página ya está siendo redirigida? ¿Cómo se puede cancelar la solicitud actual y simplemente redirigir?
Actualización:
La respuesta a esta pregunta (System.Web.Mvc.Controller Initialize) indica que Initialize
no debe usarse y OnActionExecuting
se debe usar?
No se debe utilizar ningún comentario sobre por qué Initialize
o OnAuthorization
no es una opción mejor?
Más información:
Esta entrada de blog (http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/) indica que OnActionExecuting
es útil para la autenticación (como se indica en el siguiente enlace) supongo que la adición de este a ese evento en la clase de controlador de base está muy bien ya que cada la página ejecuta una acción en MVC, por lo que no debería marcar la diferencia y tener la capacidad de redirigir debería ser más fácil. Esto tiene sentido, pero también parece tener sentido para mí que las cosas se podrían hacer en un evento antes de este evento y hace que nos preguntemos para qué sirven esos eventos. Va a dar un ir OnActionExecuting
..
¿Qué es este controlador base inicializar caso de que usted ha mencionado? –
@Mahesh Velaga: Tengo un controlador base que anula el evento Initialize, es decir, anulación protegida void Initialize (System.Web.Routing.RequestContext requestContext) ... Tengo algunas comprobaciones de seguridad y necesito redireccionar a los usuarios según esos controles –
¿Por qué? no establece algunos valores en tempdata o viewdata y cuando alcanza la acción del controlador en función del valor que puede redirigir utilizando RedirectToAction? –