我需要为我的所有网站保存一个值,有没有办法将其保存在服务器端的全局变量中,比如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";
}
您可以将其存储在应用程序状态:
public ActionResult Foo()
{
HttpContext.Application["someKey"] = "some value";
...
}
然后从中读取:
string value = (string)HttpContext.Application["someKey"];
存储在应用程序状态中的值在网站的所有用户之间共享。
如果您需要存储特定于用户的数据,您可以使用会话或cookie,具体取决于它是否是敏感数据。
Session将是您想要更改值的方式,如果值将是静态的&在应用程序加载任何数据之前已知,则可以将其存储在Web.config中并从中引用它。
例如:
<appSettings>
<add key="MyStaticItem" value="Lulz" />
</appSettings>
所以,如果你想检索字符串,你可以做:
Meh = ConfigurationManager.AppSettings["MyStaticItem"]
Meh
将是Lulz
也可以使用这样的会话:
Session["MyKey"] = "MyValue";
并像这样检索:
var myVar = (string)Session["MyKey"];
如果这是每个用户的值。
希望这能有所帮助。