0

我需要为我的所有网站保存一个值,有没有办法将它保存在服务器端的全局变量中,例如 ViewData 或者将它保存在 cookie 中更好?

此数据使用下拉列表设置并缓存在控制器中。

谢谢。

4

4 回答 4

5

在 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";

}
于 2012-09-11T08:38:54.943 回答
4

您可以将其存储在 Application 状态:

public ActionResult Foo()
{
    HttpContext.Application["someKey"] = "some value";
    ...
}

然后从中读取:

string value = (string)HttpContext.Application["someKey"];

存储在应用程序状态中的值在网站的所有用户之间共享。

如果您需要存储用户特定的数据,您可以使用会话或 cookie,具体取决于它是否是敏感数据。

于 2012-09-11T08:32:49.623 回答
4

如果您想更改值,会话将是一种方式,如果该值将是静态的并且在应用程序加载任何数据之前已知,那么您可以将其存储在 Web.config 并从那里引用它。

如:

<appSettings>
   <add key="MyStaticItem" value="Lulz" />
</appSettings>

因此,如果您想检索该字符串,您可以执行以下操作:

Meh = ConfigurationManager.AppSettings["MyStaticItem"] 

Meh将会Lulz

于 2012-09-11T08:35:35.380 回答
3

也可以像这样使用会话:

Session["MyKey"] = "MyValue";

并像这样检索:

var myVar = (string)Session["MyKey"];

如果这是每个用户的价值。

希望这是有帮助的。

于 2012-09-12T01:26:02.140 回答