问题描述
我想在过滤器中记录响应HTTP状态代码吗?我有一个动作过滤器和一个异常过滤器。我可以在异常过滤器中记录500个响应。但是我在动作过滤器中获得的响应对象始终为200,因为那时响应主体没有写入。
我考虑过要使用中间件,但是我似乎无法在中间件中获得Controller名称和Action名称。有什么建议吗?
解决方法
我知道了...
var endpoint = httpContext.GetEndpoint();
if (endpoint != null)
{
var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
if (controllerActionDescriptor != null)
{
var controllerName = controllerActionDescriptor.ControllerName;
var actionName = controllerActionDescriptor.ActionName;
}
}