我需要为我的所有网站保存一个值,有没有办法将它保存在服务器端的全局变量中,例如 ViewData 或者将它保存在 cookie 中更好?
此数据使用下拉列表设置并缓存在控制器中。
谢谢。
我需要为我的所有网站保存一个值,有没有办法将它保存在服务器端的全局变量中,例如 ViewData 或者将它保存在 cookie 中更好?
此数据使用下拉列表设置并缓存在控制器中。
谢谢。
在 Global.asax 页面中
void Application_Start(object sender, EventArgs e)
{
    // set your variable here
    Application["myVar"] = "some value";
}
动作里面
public ActionResult MyAction()
{
    // get value
    string value = Application["myValue"].ToString();
    // change value
    Application["myValue"] = "some NEW value";
}
    您可以将其存储在 Application 状态:
public ActionResult Foo()
{
    HttpContext.Application["someKey"] = "some value";
    ...
}
然后从中读取:
string value = (string)HttpContext.Application["someKey"];
存储在应用程序状态中的值在网站的所有用户之间共享。
如果您需要存储用户特定的数据,您可以使用会话或 cookie,具体取决于它是否是敏感数据。
如果您想更改值,会话将是一种方式,如果该值将是静态的并且在应用程序加载任何数据之前已知,那么您可以将其存储在 Web.config 并从那里引用它。
如:
<appSettings>
   <add key="MyStaticItem" value="Lulz" />
</appSettings>
因此,如果您想检索该字符串,您可以执行以下操作:
Meh = ConfigurationManager.AppSettings["MyStaticItem"] 
Meh将会Lulz
也可以像这样使用会话:
Session["MyKey"] = "MyValue";
并像这样检索:
var myVar = (string)Session["MyKey"];
如果这是每个用户的价值。
希望这是有帮助的。