.net core webapi教程-IResultFilter使用详解
深山老妖浏览:5462023-12-02 23:10:30本文累计收益:0我也要赚钱

IResultFilter过滤器一个比较常见的使用场景就是接口返回Json格式的统一处理,实现方式首页创建一个类继承自Attribute,IResultFilter,并实现IResultFilter接口的OnResultExecuting、OnResultExecuted两个方法,OnResultExecuting方法在Action执行后执行,然后在执行OnResultExecuted方法。

具体代码实例如下:创建CustomResultFilterAttribute类继承自Attribute, IResultFilter方法,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class CustomResultFilterAttribute : Attribute, IResultFilter
    {
        public void OnResultExecuting(ResultExecutingContext context)
        {
            if (context.Result is JsonResult)
            {
                JsonResult result = (JsonResult)context.Result;
                context.Result = new JsonResult(new AjaxResult()
                {
                    Success=true,
                    Message="Ok",
                    Data = result.Value
                });
            }
            Console.WriteLine("CustomResultFilterAttribute.OnResultExecuting");
        }
        public void OnResultExecuted(ResultExecutedContext context)
        {
            Console.WriteLine("CustomResultFilterAttribute.OnResultExecuted");
        }
    }

controller代码如下:

1
2
3
4
5
6
7
8
9
[CustomResultFilter]
        public IActionResult Index2()
        {
            this._Logger.LogInformation($"index被执行了");
            return Json(new {
                Id=123,
                Name="123"
            });
        }

返回结果如下:

评论列表
发表评论
+ 关注