asp.net核心-如何将变量从控制器传递到过滤器

时间:2018-11-17 03:30:30

标签: c# .net-core asp.net-core-2.0 asp.net-core-webapi

我有一个控制器。在控制器的post方法上,有一个我想传递给动作过滤器的变量(对象变量):方法:

public void OnActionExecuted(ActionExecutedContext context)...

关于如何实现此目标的任何建议?

1 个答案:

答案 0 :(得分:4)

使用HttpContext.Items。这是一个键/值集合,存在于单个请求期间。

在您的控制器中,添加一些内容:

HttpContext.Items["Something"] = "something I need later";

然后在OnActionExecuted方法中将其拉出:

var something = context.HttpContext.Items["Something"] as string;

您拉出的所有内容都是object类型,因此请确保将其强制转换为原来的内容。