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