Fire OnActionExecuted, даже если ответ возвращается от OnActionExecuting

У меня есть следующие атрибуты ActionFilter, реализованные для веб-API:

  1. LogRequest: это регистрирует запрос и ответ в методе OnActionExecuted.

  2. ValidateModel: проверяет модель и возвращает BadRequest, устанавливая Response в методе OnActionExecuting`.

Теперь проблема в том, что запросы, для которых мы вернули BadRequest (из атрибута ValidateModel), не регистрируются, потому что OnActionExecuted (из атрибута LogRequest) не срабатывает.

Можно ли как-то умышленно запустить OnActionExecuted?




Ответы (1)


Не думайте так. Некоторые варианты:
— в зависимости от ваших требований вы можете реализовать обработчик сообщений для целей ведения журнала.
— не выполнять логику действий, если состояние вашей модели недопустимо, и возвращать BadRequest в OnActionExecuted после ведения журнала.
— реализуйте функцию ведения журнала и просто вызывайте ее, когда вам это нужно.
...

person Ivaylo Stoev    schedule 30.10.2017