对于下面详细描述的问题,我将不胜感激。我有 ASP.Net 网络表单的背景 - 并且已经远离开发多年 - 我发现重返游戏并“升级”到 MVC 是非常困难的。然而,我不会投降——所以我在这里提出问题。
我认为学习它的最佳方法是采用现有的 Web 应用程序(Web 表单)并迁移它——从头开始重写它。这很好 - 但是我想要一些关于会话管理模式的见解/帮助。我从未在 web 表单中使用过视图状态(但实现了相当多的状态维护逻辑以提供更好的用户体验)——因此缺少视图状态不是问题。
在我的 webforms 应用程序中,我实现了以下内容 - 已被证明非常成功 - 至少来自用户的反馈。
所有会话变量都在 SQL 表中定义 - (每个用户一行)。例如选择的配色方案。
在会话开始时 - 成功登录后 - 所有会话变量都从表中加载并放入(返回)到会话变量中。
用户浏览站点并做出不同的选择(操作状态变量) - 例如选择他/她想在列表视图中查看的项目数。
在会话结束时 - (超时或放弃)变量被放回 SQL 服务器。
这将在访问该站点时保留状态。由于它是一个内网应用,各种页面承载着丰富的用户界面——事实证明,它对用户来说是一种很好的“类应用”体验。
现在 - 这如何在 MVC 中实现?放置代码的最佳位置在哪里 - 不会弄乱关注点和其他考虑因素的分离。EF 怎么样 - 这在这里派上用场 - 因为会话变量的给定用户列表实际上是数据库表中的一行。
我遇到过不同的帖子和不同的意见 - 但我似乎找不到经过验证的模式。
任何见解都值得赞赏。