Asp.net mvc 4 MVC 4:HttpContext.Current.Items

Asp.net mvc 4 MVC 4:HttpContext.Current.Items,asp.net-mvc-4,Asp.net Mvc 4,我正在创建一个MVC4应用程序。我需要在整个请求过程中存储一个对象。它需要在不同的对象中使用。我的想法是将其存储在HttpContext.Current.Items中。但是当我刷新页面时,我添加的对象仍然存在于Items集合中 我想它会被删除,如果我没记错的话,我在其他项目中使用了这种技术。我使用的是Visual Studio 2012、IIS Express和MVC 4.Net 4.5 Framework。如果要在单个控制器->视图调用中使用对象,则可以使用ViewBag。ViewBag是一个

我正在创建一个MVC4应用程序。我需要在整个请求过程中存储一个对象。它需要在不同的对象中使用。我的想法是将其存储在HttpContext.Current.Items中。但是当我刷新页面时,我添加的对象仍然存在于Items集合中


我想它会被删除,如果我没记错的话,我在其他项目中使用了这种技术。我使用的是Visual Studio 2012、IIS Express和MVC 4.Net 4.5 Framework。

如果要在单个控制器->视图调用中使用对象,则可以使用ViewBag。ViewBag是一个动态类型的类,它本质上允许您通过使用语法ViewBag.MyProperty在其中存储任何您想要的内容。然后,只需访问@ViewBag.MyProperty,即可检索视图中存储的数据


如前所述,ViewBag适合一次调用,就像TempData一样。如果您希望将此数据传递回服务器,以便在后续请求中使用,这意味着它将在多个调用中使用,您可能需要使用会话来代替。

感谢您的回复,但我实际上在寻找未清除项目集合的原因。HttpContext可能是我唯一可以使用的东西,因为我在一个外部项目中创建它,而这个项目实际上并不知道它正在Asp.net或MVC应用程序中使用。如何在上下文中设置项?HttpContext.Current.items[Key]=valueOkay,刷新页面时,如何不调用设置代码?虽然调用了设置代码,但我认为刷新页面时,HttpContext.Current.Items会被清除。我想为每个请求创建一个自定义LifetimeManager。