5、执行ResultFilter.OnResultExecuted方法
/// <summary> /// 堆代码 duidaima.com /// 结果过滤器 /// </summary> public class MyResultFilter : Attribute, IResultFilter { #region IResultFilter /// <summary> ///执行之前 /// </summary> /// <param name="context"></param> public void OnResultExecuting(ResultExecutingContext context) { if (context.Result is JsonResult) { JsonResult result = (JsonResult)context.Result; //进行返回结果进行再次封装 context.Result = new JsonResult(new { Success = true, Message = "Ok", Data = result.Value }); } } /// <summary> ///执行之后 /// </summary> /// <param name="context"></param> public void OnResultExecuted(ResultExecutedContext context) { var result = context.Result;//拿到Json结果 Console.WriteLine("在执行之后ResultFilter.OnResultExecuted方法"); } #endregion #region IAsyncResultFilter /// <summary> /// 执行时 /// </summary> /// <param name="context"></param> /// <param name="next"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) { if (context.Result is JsonResult) { JsonResult result = (JsonResult)context.Result; context.Result = new JsonResult(new { Success = true, Message = "Ok", Data = result.Value }); } await next.Invoke(); } #endregion }操作级别作用范围过滤器:
[Route("api/[controller]")] [ApiController] public class ResultFilterController : Controller { /// <summary> /// 测试:调用返回JSON /// </summary> /// <returns></returns> [HttpGet] [MyResultFilter]//作用范围是操作过滤器级别 public IActionResult Test() { return Json(new { Id = 008, Name = "Aliang", Age = 28 }); } }三、验证: