#asp.net #filter #action #middleware
#asp.net #Фильтр #Экшен #промежуточное программное обеспечение
Вопрос:
Я хочу зарегистрировать http-код состояния ответа в фильтрах? У меня есть фильтр действий и фильтр исключений. Я могу зарегистрировать 500 ответов в фильтре исключений. однако объект ответа, который я получаю в фильтре действий, всегда равен 200, потому что в это время тело ответа не записывается.
Я думал об использовании промежуточного программного обеспечения, однако, похоже, я не могу получить имя контроллера и название действия в промежуточном программном обеспечении. Есть предложения?
Ответ №1:
Я понял это…
var endpoint = httpContext.GetEndpoint();
if (endpoint != null)
{
var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
if (controllerActionDescriptor != null)
{
var controllerName = controllerActionDescriptor.ControllerName;
var actionName = controllerActionDescriptor.ActionName;
}
}