如何在OnActionExecuted的操作模型上获取属性的值

时间:2019-05-08 08:11:22

标签: .net-core action-filter onactionexecuted

使用动作模型中的属性使用 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 :(得分:0)

context里面有很多东西,因此,如果在其中戳一戳,您会发现各种有用的东西。

在您的情况下,我认为您想要的东西生活在context.ActionParameters中,它是传递给控制器​​端点的参数的集合。如果您知道您的方法应始终仅接收一个参数,则可以使用以下方式访问它:

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

关于Single()和强制转换的所有典型注释和警告在这里都适用,因此请确保以适合您情况的正确方式从集合中获取参数。