我需要为我的所有网站保存一个值,有没有办法将它保存在服务器端的全局变量中,例如 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"];
如果这是每个用户的价值。
希望这是有帮助的。