全局变量MVC应用程序

时间:2017-07-24 18:43:39

标签: c# asp.net-mvc

我正在使用MVC5在MVC应用程序中工作。我想知道如何声明一个全局变量。我在global.asax中创建了变量,如下所示:

HttpContext.Current.Application["Login"] = "Jonh Doe";

此外,我在控制器中创建了私有静态成员。但我已经意识到,如果两个用户正在浏览应用程序,那么变量上的一个商店的值将在其余部分之间共享。

我可以存储任何不在应用程序的所有实例之间共享的变量吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以使用session,它只对当前用户是全局的:

HttpContext.Current.Session["Login"] = "John Doe";

但是,您不会在global.asax中这样做,因为Session是一个在非常特定的时间(see this)初始化的模块。因此,您很可能希望在适当的时间在控制器中执行此操作:

public ActionResult Index()
{
   this.HttpContext.Session["Login"] = "X";
}

作为一个过于简单的例子。