我的MVC应用程序中有一个控制器,我正在尝试使用自定义ActionFilterAttribute来记录详细信息,使用onResultExecuted方法。
I read this tutorial 了解并编写自己的操作过滤器。问题是我如何将变量从控制器传递给动作过滤器?
控制器 -
[MyActionFilter]
public class myController : ApiController {
public string Get(string x, int y) { .. }
public string somemethod { .. }
}
动作过滤器 -
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
}
}
我希望我在这里解释了这个问题。抱歉,如果我在这里错过了一些基本的物体,我对此完全不了解。
答案 0 :(得分:64)
操作过滤器
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
}
行动方法
[MyActionFilter]
public ActionResult Index()
{
ViewBag.ControllerVariable = "12";
return View();
}
如果您注意截图,可以看到ViewBag
信息
操作过滤器
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);
}
}
行动方法
[MyActionFilter(Property1 = "Value1", Property2 = "Value2")]
public ActionResult Index()
{
return View();
}