Asp.net mvc 3 存储一个对象值,如果该值在MVC3应用程序中发生更改,则更新该值
我需要实现在任何人登录时存储用户对象(其中包含一些其他导航属性)的功能 我想在获取与用户相关的信息时访问这些信息,这样我就不需要访问数据库 用户有公告,所以如果我必须查询,我希望这样Asp.net mvc 3 存储一个对象值,如果该值在MVC3应用程序中发生更改,则更新该值,asp.net-mvc-3,design-patterns,entity-framework-4,session-state,Asp.net Mvc 3,Design Patterns,Entity Framework 4,Session State,我需要实现在任何人登录时存储用户对象(其中包含一些其他导航属性)的功能 我想在获取与用户相关的信息时访问这些信息,这样我就不需要访问数据库 用户有公告,所以如果我必须查询,我希望这样 Announcements announcements = Storage.User.Announcements; var result = from m in announcements where m.DueDate== 'someting' 我有很多与用户
Announcements announcements = Storage.User.Announcements;
var result = from m in announcements
where m.DueDate== 'someting'
我有很多与用户相关的功能,希望在不从数据库获取数据的情况下持久化和查询记录
当用户从存储中“注销”该值时。用户应清理
我已经实现了Singleton模式,但它不起作用
请建议任何模式或实践单音在这里都不起作用,因为每当发出新请求时,您的控制器(以及控制器生成的对象)都会重新生成。记住,HTTP不保持状态 要持久化,可以将对象存储在会话中 登录时,请执行以下操作:
HttpContext.Current.Session["the-session-key"] = YourObject
需要访问对象时,请执行以下操作:
YourObjectType yourObject = (YourObjectType)HttpContext.Current.Session["the-session-key"]
要清除会话,请执行以下操作:
HttpContext.Current.Session.Clear();
如果您是在控制器内执行此操作,则可以使用控制器中的Session
属性直接访问Session
例如,在控制器中,您可以执行以下操作:
Session.Clear()
Singletone在这里不起作用,因为每当发出新请求时,都会重新生成控制器(以及控制器生成的对象)。记住,HTTP不保持状态 要持久化,可以将对象存储在会话中 登录时,请执行以下操作:
HttpContext.Current.Session["the-session-key"] = YourObject
需要访问对象时,请执行以下操作:
YourObjectType yourObject = (YourObjectType)HttpContext.Current.Session["the-session-key"]
要清除会话,请执行以下操作:
HttpContext.Current.Session.Clear();
如果您是在控制器内执行此操作,则可以使用控制器中的Session
属性直接访问Session
例如,在控制器中,您可以执行以下操作:
Session.Clear()