加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将自定义类添加到HttpContext

发布时间:2020-12-15 18:58:59 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET MVC C#项目中: 我目前正在使用HttpContext.Items来存储应该在该请求中的任何地方使用的属性. 这就是我在控制器中的含义: HttpContext.Items["IUser"] = new CustomClass(“parameter”); 这可以在视图中检索,因为我在视图web.config文件中覆盖了
在ASP.NET MVC C#项目中:

我目前正在使用HttpContext.Items来存储应该在该请求中的任何地方使用的属性.
这就是我在控制器中的含义:

HttpContext.Items["IUser"] = new CustomClass(“parameter”);

这可以在视图中检索,因为我在视图web.config文件中覆盖了这样的默认WebViewPage:

<pages pageBaseType="Project.CustomWebViewPage">

在CustomWebViewPage中,我创建了一个属性,并在InitHelpers()方法中设置它,如下所示:

IUser = (CustomClass)HttpContext.Current.Items["IUser"];

但是,如果我想在我的Models / ViewModels中检索它,我将不得不将代码片段放在任何地方,因此我想到了直接在HttpContext中创建CustomClass(所以我至少不需要进行类型转换),但我无法找到如何覆盖或动态添加该对象.

解决方法

您可以创建一个扩展方法.像这样的东西:
public static class HttpContextExtensions
{
    public static CustomClass GetUser(this HttpContextBase context)
    {
        return (CustomClass)context.Items["IUser"];
    }
}

然后你会这样称呼它:

var user = HttpContext.Current.GetUser();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读