2012-09-11 110 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"; 

}