繁体   English   中英

如何在Azure上运行的MVC 3中将会话信息从一个屏幕传递到另一个屏幕

[英]How can I pass session information from one screen to another in MVC 3 running on Azure

我有一个屏幕,用户从下拉列表中选择数据库源。 一旦选择了,我希望将信息传递到其他屏幕上,这样用户就不必一直选择。

如何将这样的信息从一个屏幕传递到另一个屏幕? 请注意,信息只是非常小的事情,如:

DatasourceID - 2 characters
SubjectID - 2 characters

当我在Azure上运行时,我可以假设存储的最佳位置是在客户端吗? 我看到一个存储数据的实现,如下所示:

Session["abc"] = "def";
if (Session["abc"] != null)
etc ...

这是最好的方式还是我错过了什么。 另外,每次在不同服务器上提供页面时,上述工作方式如何? 以上是否在本地存储信息?

会话存储在服务器端。 现在,在Azure中,您可以选择存储的几个选项。 这取决于您想要对此数据源执行的操作。 如果您只需要在以下屏幕中显示,则可以将其存储在存储在会话中的TempData中。 它保存在那里,直到你阅读它。

现在,您可以使用以下选项来存储会话状态:

  1. 在Azure AppFabric缓存中
  2. 在SQL Azure数据库中
  3. 在blob存储

Azure AppFabric缓存有一个Session提供程序,它很容易设置。 您只需在Azure门户中创建一个新缓存,然后单击工具栏上的相应按钮即可获取所需的web.config条目。 这也在这里详细解释

使用它可以将会话存储在会话中。 缺点是它有点贵(128 MB缓存大约45美元/月)。 因此,另一种方法是在SQL Azure中存储会话状态。 有一个SQL Azure的Session提供程序。

这是Scott Hanselman对ASP.NET通用提供程序的精彩介绍的链接 如果您没有使用成员资格,那么您只需要设置System.Web.Providers.DefaultSessionStateProvider

只需确保将连接字符串指向SQL Azure DB即可。 注意:您必须在连接字符串中设置MultipleActiveResultSets=True ,因此如果您已从门户复制SQL Azure连接字符串,请务必将其添加回来。

然后在培训套件中还有一个用于博客存储的会话提供程序,可通过http://code.msdn.microsoft.com/windowsazure/Windows-Azure-ASPNET-03d5dc14上的示例应用程序获得 我相信它不受MS的支持。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM