我很难理解 mvc 的无状态问题。假设我有一个包含人员列表的屏幕。我想选择其中一个,一旦我选择了这个人,我想保留他的 ID,从我的左侧菜单中,我想打开一个显示他的订单的屏幕,一个显示他的帐户详细信息的屏幕……在 ASPX 中,我会只需将他的 PersonID 保留在会话中,并在整个网站上使用它。我怎样才能在 mvc 中做同样的事情?如果我将他的 id 保存在公共静态类的公共变量中怎么办?它会起作用吗?
谢谢。
我很难理解 mvc 的无状态问题。假设我有一个包含人员列表的屏幕。我想选择其中一个,一旦我选择了这个人,我想保留他的 ID,从我的左侧菜单中,我想打开一个显示他的订单的屏幕,一个显示他的帐户详细信息的屏幕……在 ASPX 中,我会只需将他的 PersonID 保留在会话中,并在整个网站上使用它。我怎样才能在 mvc 中做同样的事情?如果我将他的 id 保存在公共静态类的公共变量中怎么办?它会起作用吗?
谢谢。
使用会话,就像在 ASPX 中一样。
使用具有静态PersonID
属性的静态类,它将由所有用户共享......意味着每次设置值时,所有用户都将获得相同的值:不完全是您想要的,是吗?
因此,Web Forms 模型本质上抽象了许多特性,为 Web 开发人员提供了一个模拟的有状态模型。因此,您不必成为具有大量 HTML 和 JavaScript 知识的 Web 专家即可编写有效的 Web 应用程序。
为了模拟 Web 上的有状态编程,ASP.NET Web 窗体引入了诸如视图状态、回发和整体事件驱动范例等功能。
它不是无状态的 MVC,它的 HTTP。ASP.NET 和其他 Web 技术中的解决方法是服务器端会话状态和某种将来自一个客户端的无状态 http 请求关联到一个服务器端会话对象(通常使用 cookie 完成)。
所以只需使用Session
orTempData
属性。