ActionExecutionDelegate执行后更改结果

时间:2018-11-14 10:54:50

标签: c# asp.net-core asp.net-core-webapi

我正在尝试为用ASP.Net Core编写的Web API创建一个全局异常处理属性,并且我正在使用IAsyncActionFilter接口来做到这一点。我正在调用ActionExecutionDelegate,然后检查其结果中是否有异常。当我遇到异常时,我然后尝试重定向结果或手动写入HttpResponse,这就是我面临的实际问题。给出以下示例:

var resultContext = await next();

在此代码失败后尝试更改响应的任何代码。我尝试了以下方法:

 resultContext.Result = new ContentResult() {...}
 resultContext.HttpContext.Response.WriteAsync(.....)

出于好奇,我还试图在执行操作之前对操作的上下文进行相同的操作,但正如预期的那样,它也失败了。

如果您需要了解OnActionExecutionAsync方法的实际方法签名,如下所示:

Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)

0 个答案:

没有答案