filters - ¿Cómo paso las variables a un ActionFilter personalizado en la aplicación ASP.NET MVC?
filters asp net mvc 5 (1)
Enfoque - 1
Filtro de acción
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
}
Método de acción
[MyActionFilter]
public ActionResult Index()
{
ViewBag.ControllerVariable = "12";
return View();
}
Si prestas atención a la captura de pantalla, puedes ver la información ViewBag
Enfoque - 2
Filtro de acción
public class MyActionFilter : ActionFilterAttribute
{
//Your Properties in Action Filter
public string Property1 { get; set; }
public string Property2 { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
}
Método de acción
[MyActionFilter(Property1 = "Value1", Property2 = "Value2")]
public ActionResult Index()
{
return View();
}
Tengo un controlador en mi aplicación MVC para el cual intento registrar detalles utilizando un ActionFilterAttribute personalizado, utilizando el método onResultExecuted.
Leí este tutorial para comprender y escribir mi propio filtro de acción. La pregunta es ¿cómo paso las variables del controlador al filtro de acción?
- Quiero obtener las variables de entrada con las que se llama un controlador. Diga, el nombre de usuario / ID de usuario.
- Si (en algunas situaciones) se arroja una excepción por cualquier método de control, me gustaría registrar el error también.
El controlador -
[MyActionFilter]
public class myController : ApiController {
public string Get(string x, int y) { .. }
public string somemethod { .. }
}
El filtro de acción -
public class MyActionFilterAttribute : ActionFilterAttribute {
public override void onActionExecuted(HttpActionExecutedContext actionExecutedContext) {
// HOW DO I ACCESS THE VARIABLES OF THE CONTROLLER HERE
// I NEED TO LOG THE EXCEPTIONS AND THE PARAMETERS PASSED TO THE CONTROLLER METHOD
}
}
Espero haber explicado el problema aquí. Disculpas si me estoy perdiendo algunos objetos básicos aquí, soy totalmente nuevo en esto.