【问题标题】:How to add a request wise variable in httpcontext如何在 httpcontext 中添加请求明智的变量
【发布时间】:2016-06-02 08:25:04
【问题描述】:

在 HttpContext(或类似的东西)中,我需要从控制器中添加一个临时变量,该变量需要在整个请求处理过程中可用(请求明智变量)。但是 HttpContext.Current.Request 是只读的。如果我要添加项目,它就不会出去。我怎样才能做到这一点

感谢和问候 Binesh Nambiar C

【问题讨论】:

    标签: asp.net-mvc httpcontext


    【解决方案1】:

    您正在寻找HttpContext.Items,这是一个字典,可用于在当前请求期间存储项目。它在请求结束时超出范围。

    // Set
    HttpContext.Items["Customer"] = customer;
    
    // Get
    var customer = HttpContext.Items["Customer"];
    

    【讨论】:

    • 我试过 HttpContext.Current.Items。它不工作。我现在在自定义模型绑定器中使用该字段
    • 您能否提供更多详细信息? (请编辑您的问题并添加它们)。模型绑定发生在请求开始附近,因此从请求缓存中获取值可能没有多大意义(尽管它可能是设置它们的好地方)。
    • BTW - 你永远不应该在 MVC 中使用静态 HttpContext.Current (这可能是你的问题)。在模型绑定器中,上下文对象被传入。您可以访问请求缓存,如var cache = controllerContext.HttpContext.Items["Key"];
    • 嗨,我通过添加到请求属性的标题解决了
    猜你喜欢
    • 2011-07-10
    • 2021-07-06
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多