2012-09-11 113 views
0

我需要为我的所有网站保存一个值,有没有一种方法可以将其保存在服务器端的全局变量中,例如ViewData,或者是否更好地将它保存在cookie中?ASP.NET MVC C#全局变量

该数据使用下拉列表进行设置并在控制器中捕获。

谢谢。

+2

取决于它是用户特定的还是应用程序特定的 – jgauffin

回答

3

还可以使用会话这样的:

Session["MyKey"] = "MyValue"; 

和检索这样的:

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

如果每用户价值的。

希望这是帮助。

3

你可以把它存储在应用程序状态:

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

再后来从中读取:

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

存储在应用程序状态的值是该网站的所有用户共享。

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

3

如果您要更改值,如果值将是静态的,则会话将是方式&在应用程序加载任何数据之前已知,然后您可以将其存储在Web.config中并从中引用它。

如:

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

那么接下来,如果你想中检索该字符串,你可以这样做:

Meh = ConfigurationManager.AppSettings["MyStaticItem"] 

MehLulz

4

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

}