【问题标题】:asp.net core - How to pass variable from controller to filterasp.net core - 如何将变量从控制器传递给过滤器
【发布时间】:2019-04-20 05:39:45
【问题描述】:

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

public void OnActionExecuted(ActionExecutedContext context)...

关于如何实现这一点的任何建议?

【问题讨论】:

  • 如果我理解您的问题,您正在尝试在操作过滤器中访问操作方法的参数。您可以尝试从上下文的路由值中访问它吗?

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


【解决方案1】:

使用HttpContext.Items。它是在单个请求期间存在的键/值集合。

在你的控制器中,添加一些东西:

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

然后在OnActionExecuted方法中拉出来:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多