ASP.NET MVC长期复杂对象

时间:2010-10-20 03:31:02

标签: ajax asp.net-mvc-2

标题有点复杂,但它符合我的问题。我有一个复杂的对象,更像是一个我需要在用户会话范围内公开的服务。大多数应用程序将存在于一个或两个页面中,并且许多ajax调用与服务进行动态交互。我仍然习惯于MVC,如果解决方案很简单,请原谅无知。如何将每个会话的服务实例公开给我的控制器?

提前致谢!

1 个答案:

答案 0 :(得分:0)

另见这个问题:How does the session state work in MVC 2.0?

该答案包含一个很好的代码示例,例如以下关于从控制器类访问每个用户会话状态的信息。

   // from example
   if (Session["QuestionAnswers"] != null)
   {
        return (List<QuestionAnswer>)Session["QuestionAnswers"];
   }

您可以使用常规ASP.NET Session state为特定用户存储复杂对象。

您可以存储会话状态中的任何内容,包括“复杂对象”值。

MSDN会话状态引用:

  

ASP.NET会话状态使您能够   存储和检索用户的值   当用户导航不同的   构成Web的ASP.NET页面   应用

Scott Guthrie(微软开发人员部门的公司副总裁)的以下引用支持它在MVC中使用常规会话状态:

Scottgu关于MVC&amp; amp;会话状态支持:

  

今天的ASP.NET中的非UI功能就像   表单身份验证,Windows   身份验证,成员身份,角色,网址   授权,缓存,会话状态,   个人资料,健康监测,   配置,编译,   本地化,和   HttpModules / HttpHandlers全部完全   支持MVC模型

- http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx

  

虽然你的结构方式   应用流程会有所不同,我   认为你会非常惊喜   由知识量重叠   存在。身份验证,   授权,缓存,配置,   编译,会话状态,个人资料   管理,健康监测,   管理,部署等等,   许多其他的东西正好是   相同即可。 MVC视图也是.aspx页面   (使用.ascx用户控件和   .master文件)。所以这个概念重复使用   那里也很重。

- http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx