Как получить значение свойства на модели действия на OnActionExecuted - PullRequest
0 голосов
/ 08 мая 2019

Мне нужно выполнить некоторый код после действия, выполненного с использованием ActionFilter на основе свойства в модели действий. Как получить значение свойства внутри OnActionExecuted?

Модель

public class Profile
{
        public Guid Id { get; set; }
        public string Name { get; set; }
}

Действие

public BotProfileDTO Update(Profile profile)
{

}

Фильтр действий

public override void OnActionExecuted(ActionExecutedContext context)
{
       //How to get profile Id here
}

1 Ответ

0 голосов
/ 01 июля 2019

Внутри context довольно много, поэтому, если вы покопаетесь в нем, вы найдете все виды полезных вещей.

В вашем случае, я думаю, что вы хотите жить в context.ActionParameters, который представляет собой набор параметров, передаваемых в конечную точку контроллера. Если вы знаете, что ваш метод должен всегда получать один и только один параметр, вы можете получить к нему что-то вроде:

var myId = (context.ActionParameters.Single().Value as Profile).Id

Здесь применяются все типичные замечания и предостережения, касающиеся Single () и приведения типов, поэтому убедитесь, что вы правильно выбрали параметр из коллекции.

...