ASP MVC中的会话

时间:2012-02-22 07:58:54

标签: asp.net asp.net-mvc asp.net-mvc-3 session

我了解到Sessions不再是在ASP MVC中保存数据的推荐方法,而是我们应该转移到ViewData(从控制器到View)和TempData(仅用于一个回发)。我们不应该使用Session的唯一原因是维护Testability(MVC支持TDD,因此运行TestMethods时HTTPContext.Session无法解析)。

但Sessions广泛解决的目的仍然没有得到ViewData或TempData的解决。会话保存整个用户会话的上下文。

我仍然无法在MVC中收集正确的建议和会话替代方案。我可能会错误地理解正确的画面。我很感激您对讨论的任何链接或您的任何建议。

这将帮助我决定,使用Session作为它与WebForms一起使用的目的,或者我们应该去重新架构当前的应用程序,以便我们可以在强制性的情况下使用Session。

由于 Sumeet

1 个答案:

答案 0 :(得分:3)

在MVC中,Session仍然是widely in use

为了使您的代码更易于测试,您可以为Session提供抽象(例如Interface),然后将其注入您的控制器 - 然后您可以向控制器提供模拟或存根'会话'。

但我会坚持使用ViewModel或ViewData与您的视图进行通信 - 即视图不应直接访问Session。