我的 MVC 应用程序中有一个 Controller ,我尝试使用 onResultExecuted 方法使用自定义 ActionFilterAttribute 记录详细信息。
I read this tutorial 理解和编写我自己的 Action 过滤器。问题是如何将变量从 Controller 传递到 Action 过滤器?
Controller ——
[MyActionFilter]
public class myController : ApiController {
public string Get(string x, int y) { .. }
public string somemethod { .. }
}
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
}
}
我希望我已经在这里解释了这个问题。抱歉,如果我在这里遗漏了一些基本对象,我对此完全陌生。
最佳答案
方法 - 1
Action 过滤器
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
}
操作方法
[MyActionFilter]
public ActionResult Index()
{
ViewBag.ControllerVariable = "12";
return View();
}
如果你注意截图,你可以看到
ViewBag
信息方法 - 2
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);
}
}
操作方法
[MyActionFilter(Property1 = "Value1", Property2 = "Value2")]
public ActionResult Index()
{
return View();
}
关于asp.net-mvc - 如何将变量传递给 ASP.NET MVC 应用程序中的自定义 ActionFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209735/