Al crear un filtro de acción ASP.MVC 3 personalizado, ¿cómo debo redirigir al usuario a otra acción si falla mi prueba? Me gustaría pasar la Acción original para que pueda volver a dirigirme a la página original después de que el usuario ingrese la preferencia que falta.¿Cómo redirecciono al usuario a otra acción del controlador desde un filtro de acción ASP.MVC 3?
En el regulador:
[FooRequired]
public ActionResult Index()
{
// do something that requires foo
}
en una clase de filtro personalizado:
// 1. Do I need to inherit ActionFilterAttribute or implement IActionFilter?
public class FooRequired : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (TestForFoo() == false)
{
// 2. How do I get the current called action?
// 3. How do I redirect to a different action,
// and pass along current action so that I can
// redirect back here afterwards?
}
// 4. Do I need to call this? (I saw this part in an example)
base.OnActionExecuting(filterContext);
}
}
Busco un ejemplo sencillo filtro de ASP.MVC 3. Hasta el momento, mis búsquedas han dado lugar a ejemplos de Ruby on Rails o ASP.MVC filter mucho más complicados de lo que necesito. Me disculpo si esto se ha preguntado antes.
posible duplicado de [ASP.NET MVC 3 redirigir desde el atributo de filtro de acción] (http://stackoverflow.com/questions/5453338/asp-net-mvc-3-redirect-from-action-filter-attribute) – Talljoe
Eso responde seguramente a parte de mi pregunta. No lo conseguí en mi búsqueda de StackOverflow antes de preguntar. Todavía me pregunto cómo pasar la Acción existente. –
@Talljoe y mods: más parecido a un posible duplicado de [Redirigir a controlador y acción especificados en el filtro de acción asp.net mvc] (http://stackoverflow.com/questions/1490401/redirecting-to-specified-controller-and- action-in-asp-net-mvc-action-filter) –