ASP.NET MVC C#全局变量



我需要为我的所有网站保存一个值,有没有办法将其保存在服务器端的全局变量中,比如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"];

如果这是每个用户的值。

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新