すべてのWebサイトの値を保存する必要があります。たとえば、ViewDataのようにサーバー側のグローバル変数に値を保存する方法はありますか、それともCookieに保存する方がよいでしょうか。
このデータはドロップダウンリストを使用して設定され、コントローラーにキャッシュされます。
ありがとう。
すべてのWebサイトの値を保存する必要があります。たとえば、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"];
アプリケーション状態に保存された値は、Webサイトのすべてのユーザー間で共有されます。
ユーザー固有のデータを保存する必要がある場合は、機密データであるかどうかに応じて、セッションまたはCookieを使用できます。
値を変更したい場合はセッションが最適です。値が静的であり、アプリケーションがデータをロードする前にわかっている場合は、Web.configに保存して、そこから参照できます。
そのような:
<appSettings>
<add key="MyStaticItem" value="Lulz" />
</appSettings>
したがって、その文字列を取得したい場合は、次のことができます。
Meh = ConfigurationManager.AppSettings["MyStaticItem"]
Meh
だろうLulz
次のようなセッションも使用できます。
Session["MyKey"] = "MyValue";
次のように取得します。
var myVar = (string)Session["MyKey"];
それがユーザーごとの値である場合。
これがお役に立てば幸いです。