從 action filter 內抓出來源的 controller name、action name

  • 883
  • 0
  • C#
  • 2016-09-26

簡單的記錄一下
從 action filter 內抓出來源的 controller name、action name 的語法
之後可應用在想處理共通的 request、respone 上

說白了,就是 ActionExecutingContext 類別的使用
MSDN ActionExecutingContext 類別

語法如下:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    log4net.Config.XmlConfigurator.Configure();
    string actionName = filterContext.ActionDescriptor.ActionName;
    string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
    logger.Debug($"controller name:{controllerName},action name:{actionName}");
    base.OnActionExecuting(filterContext);
}

 

得到的 log 如下

DEBUG 2016-09-24 09:24:43,597    76ms LogAttribute           OnActionExecuting  - controller name:List,action name:Index
DEBUG 2016-09-24 09:25:09,018 25497ms LogAttribute           OnActionExecuting  - controller name:Home,action name:Index