J'ai un contrôleur dans mon application MVC pour lequel j'essaie de consigner les détails à l'aide d'un ActionFilterAttribute personnalisé, en utilisant la méthode onResultExecuted.
j'ai lu ce tutoriel pour comprendre et écrire mon propre filtre d'action. La question est de savoir comment passer des variables du contrôleur au filtre d'action?
Le controlle -
[MyActionFilter]
public class myController : ApiController {
public string Get(string x, int y) { .. }
public string somemethod { .. }
}
Le filtre d'action -
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
}
}
J'espère avoir expliqué le problème ici. Toutes mes excuses si je manque certains objets de base ici, je suis totalement nouveau dans ce domaine.
Filtre d'action
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
}
Méthode d'action
[MyActionFilter]
public ActionResult Index()
{
ViewBag.ControllerVariable = "12";
return View();
}
Si vous faites attention à la capture d'écran, vous pouvez voir les informations ViewBag
Filtre d'action
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éthode d'action
[MyActionFilter(Property1 = "Value1", Property2 = "Value2")]
public ActionResult Index()
{
return View();
}