1

对于下面详细描述的问题,我将不胜感激。我有 ASP.Net 网络表单的背景 - 并且已经远离开发多年 - 我发现重返游戏并“升级”到 MVC 是非常困难的。然而,我不会投降——所以我在这里提出问题。

我认为学习它的最佳方法是采用现有的 Web 应用程序(Web 表单)并迁移它——从头开始重写它。这很好 - 但是我想要一些关于会话管理模式的见解/帮助。我从未在 web 表单中使用过视图状态(但实现了相当多的状态维护逻辑以提供更好的用户体验)——因此缺少视图状态不是问题。

在我的 webforms 应用程序中,我实现了以下内容 - 已被证明非常成功 - 至少来自用户的反馈。

  1. 所有会话变量都在 SQL 表中定义 - (每个用户一行)。例如选择的配色方案。

  2. 在会话开始时 - 成功登录后 - 所有会话变量都从表中加载并放入(返回)到会话变量中。

  3. 用户浏览站点并做出不同的选择(操作状态变量) - 例如选择他/她想在列表视图中查看的项目数。

  4. 在会话结束时 - (超时或放弃)变量被放回 SQL 服务器。

这将在访问该站点时保留状态。由于它是一个内网应用,各种页面承载着丰富的用户界面——事实证明,它对用户来说是一种很好的“类应用”体验。

现在 - 这如何在 MVC 中实现?放置代码的最佳位置在哪里 - 不会弄乱关注点和其他考虑因素的分离。EF 怎么样 - 这在这里派上用场 - 因为会话变量的给定用户列表实际上是数据库表中的一行。

我遇到过不同的帖子和不同的意见 - 但我似乎找不到经过验证的模式。

任何见解都值得赞赏。

4

1 回答 1

0

MVC 实际上并没有改变会话状态的工作方式。即使在最新版本的 ASP .NET MVC 中,您上面提到的所有内容都应该仍然有效。

也就是说,您尝试解决的特定问题听起来更像是用户配置文件提供程序,而不是“会话”

于 2012-09-07T02:08:44.393 回答