[英]Is it possible to call a method when any action is called in a whole controller?
我想在调用任何动作来执行某些工作时调用特定的方法。 我想知道这是否可能? 我确实为所有控制器都配备了basecontroller,但目前没有任何控制器。
即,如果我转到索引页面,则在调用索引动作方法时要对该控制器进行调用,我想做一些工作,然后继续该动作。 我试图避免在每个动作中到处都调用此方法,而是查看是否存在在每个位置调用它的通用方法。
是的,确实有一些东西。 您正在寻找过滤器 ,更具体地说是OnActionExecuting
过滤器 。
如果在派生的Controller类中重写此方法,则将为该类中的每个操作方法调用该方法。 为了获得更大的灵活性,请从ActionFilterAttribute派生一个类,并在派生的ActionFilterAttribute类中重写此方法。
样品:
protected override void OnActionExecuting(ActionExecutingContext ctx) {
base.OnActionExecuting(ctx);
ctx.HttpContext.Trace.Write("Log: OnActionExecuting",
"Calling " +
ctx.ActionDescriptor.ActionName);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.