Mvc State更换

时间:2012-11-01 12:49:37

标签: asp.net-mvc

我很难理解mvc的无状态问题。 假设我有一个包含人员列表的屏幕。我想选择其中一个,一旦我选择这个人我想保留他的ID,从我的左侧菜单我想打开一个屏幕与他的订单,一个屏幕与他的帐户详细信息.... 在ASPX中,我只会将他的PersonID保留在会话中,并在整个网站上使用它。 我怎样才能在mvc中做同样的事情?如果我将他的id保存在公共静态类的公共变量中怎么办?它会起作用吗?

感谢。

2 个答案:

答案 0 :(得分:1)

使用会话,就像在ASPX中一样。

对于具有静态PersonID属性的静态类,它将由所有用户共享... 这意味着每次设置值时,所有用户都将获得相同的值:不完全是您想要的,是吗?

  

因此,Web Forms模型基本上抽象了许多功能   为Web开发人员提供模拟状态模型。结果是,   你不必是一个拥有大量HTML和JavaScript的网络专家   知识编写有效的Web应用程序。

     

通过Web模拟ASP.NET Web窗体的状态编程   介绍了viewstate,postbacks和整体等功能   事件驱动的范例。

http://msdn.microsoft.com/en-us/magazine/dd942833.aspx

答案 1 :(得分:1)

它不是无状态的MVC,它的HTTP。 ASP.NET和其他Web技术中的解决方法是服务器端会话状态,并且某种类型的无状态http请求从一个客户端关联到一个服务器端会话对象(通常使用cookie)。

所以只需使用SessionTempData属性。