在控制器和页面之间共享数据

时间:2010-09-27 10:53:56

标签: asp.net-mvc

如何在会话等所有Web应用程序之间共享数据。我已经使用了会话但是当我提出任何下一个请求时价值迷失了我不知道天气我犯了错误或什么。只想在登录时从数据库中获取一次后在所有应用程序之间共享数据。 (就像会话没有违反MVC规则一样)谢谢

我刚刚提出的同样没有不同的应用程序  HttpContext.Current.Session [“city”] = value; 在数据提取类中,但是无法在控制器中获取此值  city =(string)HttpContext.Current.Session [“city”] error对象未设置为实例

2 个答案:

答案 0 :(得分:0)

会话特定于给定的应用程序。多个应用程序之间有workarounds that allow you to share个相同的会话,但恕我直言,这不是一个好的设计。另一种方法是简单地在这些应用程序之间共享一个ID(使用cookie或将其作为请求参数发送)并从数据库中获取数据。

答案 1 :(得分:0)

虽然我认为这不是一个好习惯,但this SO link可能会对您有所帮助。它解释了如何使用Cache来存储应用程序变量。

请记住,如果您这样做,当用户更改他的国家/地区或您的应用程序将不会反映这一点(或者如果您定期刷新它会这样做)。我真的不明白为什么一个简单的DB请求来获取你的LoggedIn人的国家是不合适的(速度似乎很奇怪,只有一个请求,你可能在该页面上做得更多)。