【发布时间】:2014-12-18 20:06:27
【问题描述】:
在 WebAPI 中,无论如何都要记录使用操作过滤器调用或执行的控制器的操作方法的名称。我正在使用如下所示的 RouteData 属性,但操作值不包含任何值。有什么办法可以在过滤器中获取操作名称。
public class LogActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
Log(actionExecutedContext.ActionContext.RequestContext.RouteData);
base.OnActionExecuted(actionExecutedContext);
}
private void Log(System.Web.Http.Routing.IHttpRouteData httpRouteData)
{
var controllerName = httpRouteData.Values["controller"];
var actionName = httpRouteData.Values["action"];
var message = String.Format("controller:{0}, action:{1}", controllerName, actionName);
Debug.WriteLine(message, "Action Filter Log");
}
}
【问题讨论】:
标签: asp.net-web-api