如何在所有视图/控制器/用户之间共享数据

时间:2014-01-27 13:33:56

标签: asp.net-mvc entity-framework asp.net-mvc-4

我有一个MVC应用程序,我正在使用实体框架,有一个主表,其数据可以在不同的视图之间访问。所有用户都有控制器。

我希望将此主表的数据保存到某个共享变量/会话或任何内容中,以便所有用户都可以访问它。由于这是一个主表,因此数据对所有人来说都很常见。

我尝试使用TempData,ViewBag但是如果我们重定向到不同的视图,那么数据就不会持续存在。控制器。我也尝试了会话,但我不想让每个用户在内存中保留副本。

在MVC应用程序中存储此类数据的最佳方法是什么

Atul Sureka

3 个答案:

答案 0 :(得分:3)

在ASP.Net MVC中使用Runtime Cache object来保留所有常用数据。缓存数据可以快速访问,我们还有其他好处,如过期缓存等。

答案 1 :(得分:2)

您正在寻找应用程序状态http://msdn.microsoft.com/en-us/library/bf9xhdz4%28VS.71%29.aspx它就像会话状态,但在所有连接用户(全局会话)之间共享。

答案 2 :(得分:0)

您可以将它们放入应用程序:

Application["GlobalVar"] = 1234;

它们仅在当前IIS / Virtual应用程序中是全局的。这意味着,在webfarm上,它们是服务器的本地,并且位于作为应用程序根目录的虚拟目录中。