如何使用WebApi ActionFilter属性

时间:2017-06-04 11:11:14

标签: asp.net-web-api

这里我写了简单的Actioon Filter As

 public class ActionFilter:ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            Trace.WriteLine(string.Format("Action Method {0} executing at {1}",actionExecutedContext.ActionContext.ActionDescriptor, DateTime.Now.ToShortDateString()), "Web API Logs");
        }
        public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            Trace.WriteLine(string.Format("Action Method {0} executed at {1}",actionContext.ActionDescriptor.ActionName,  DateTime.Now.ToShortDateString()));
        }

在WebApi中

[ActionFilter]
        public IHttpActionResult GetData()
        {
        }

这里它前后工作但我不明白为什么这个过滤器进入图片

1 个答案:

答案 0 :(得分:1)

Action过滤器主要用于在Action执行之前和之后执行某些逻辑。

让我们考虑两个场景:

  1. 如果您需要检查用户是否可以访问特定的操作,您只需编写代码以在代码的 OnActionExecuting()功能中对其进行验证。
  2. 如果您想要在执行操作后修改想要执行任何活动的响应,则可以使用 OnActionExecuted 功能过滤器。
  3. 有关过滤器的详细信息,请查看以下链接: Action Filters