我了解到Sessions不再是在ASP MVC中保存数据的推荐方法,而是我们应该转移到ViewData(从控制器到View)和TempData(仅用于一个回发)。我们不应该使用Session的唯一原因是维护Testability(MVC支持TDD,因此运行TestMethods时HTTPContext.Session无法解析)。
但Sessions广泛解决的目的仍然没有得到ViewData或TempData的解决。会话保存整个用户会话的上下文。
我仍然无法在MVC中收集正确的建议和会话替代方案。我可能会错误地理解正确的画面。我很感激您对讨论的任何链接或您的任何建议。
这将帮助我决定,使用Session作为它与WebForms一起使用的目的,或者我们应该去重新架构当前的应用程序,以便我们可以在强制性的情况下使用Session。
由于 Sumeet
答案 0 :(得分:3)
在MVC中,Session仍然是widely in use。
为了使您的代码更易于测试,您可以为Session提供抽象(例如Interface),然后将其注入您的控制器 - 然后您可以向控制器提供模拟或存根'会话'。
但我会坚持使用ViewModel或ViewData与您的视图进行通信 - 即视图不应直接访问Session。