2010-09-27 83 views
1

如何在所有Web应用程序(如会话)之间共享数据。我已经使用会话,但是当我提出任何下一个请求时,价值会变得不知所云,我不知道天气我犯了什么错误。只是想在登录时从数据库提取一次后在所有应用程序之间共享数据。 (像会议没有打破MVC的规则)谢谢在控制器和页面之间共享数据

没有不同的应用程序,我只是把 HttpContext.Current.Session [“city”] = value;在数据取类 但但不能不能得到在控制器此值作为 城市=(字符串)HttpContext.Current.Session [“城市”]错误对象不设置为一个实例

+0

你想达到什么目的?不能想出很多你想要这种行为的东西。 – bastijn 2010-09-27 11:11:05

+0

没有什么大事只是想在使用其控制器而不是主页面登录时从数据库中获取登录后显示登录的城市becoz我还需要进一步的sql查询。 – user426306 2010-09-27 11:26:32

+0

您的主题开始有点混乱。花点时间写下它,并确保“upvote”或“accept”答案是解决问题的答案。我不禁注意到,你所有的问题仍然没有解决,也没有接受你方的回答。当某些问题解决了你的问题时,让其他人知道,这样当他们自己遇到同样的问题时,他们会知道什么答案是正确的。 – bastijn 2010-09-27 12:12:56

回答

0

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

+0

好吧,感谢您的答案,但从数据库中提取将使操作变化缓慢,cookie可以禁用,我们有解决方案就像我们在asp.net会话中,我们只有一次进入数据,并且可以随时随地在aspx页面中使用,并且可以使用cs文件? – user426306 2010-09-27 11:22:22

+0

如果您有不同的应用程序,则需要在这些应用程序之间共享会话。阅读我在答案中链接到的文章,了解如何实现这一目标。 – 2010-09-27 11:25:48

+0

对于“所有应用程序”,他意味着整个应用程序,而不是在不同的应用程序之间。他的英语只是有点时髦:)。 @TS:一个数据库请求得到国家太慢?! – bastijn 2010-09-27 11:49:20

0

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

请记住,如果你这样做,当用户改变他的国家或什么的时候你的应用程序不会反映这个(或者如果你定期刷新它)。我不明白为什么一个简单的数据库请求让你的LoggedIn用户的国家不合适(速度看起来很奇怪,只是一个请求,反正你可能在这个页面上做的更多)。

相关问题