Глобальная переменная ASP.NET MVC C#

Мне нужно сохранить значение для всего моего веб-сайта, есть ли способ сохранить его в глобальной переменной на стороне сервера, например, ViewData, или лучше сохранить его в файле cookie?

Эти данные задаются с помощью выпадающего списка и кэшируются в контроллере.

Спасибо.


person MaT    schedule 11.09.2012    source источник
comment
зависит от того, зависит ли он от пользователя или приложения   -  person jgauffin    schedule 11.09.2012


Ответы (4)


Можно также использовать сеанс следующим образом:

Session["MyKey"] = "MyValue";

и получение следующим образом:

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

если это значение пользователя.

Надеюсь, это поможет.

person Display Name    schedule 12.09.2012

Вы можете сохранить его в состоянии приложения:

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

а затем позже прочитал из него:

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

Значения, хранящиеся в состоянии приложения, являются общими для всех пользователей веб-сайта.

Если вам нужно хранить данные, специфичные для пользователя, вы можете использовать сеанс или файлы cookie в зависимости от того, являются ли они конфиденциальными данными или нет.

person Darin Dimitrov    schedule 11.09.2012

На странице 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";

}
person Community    schedule 11.09.2012

Сессия подойдет, если вы хотите изменить значение, если значение будет статическим и известно до того, как приложение загрузит какие-либо данные, вы можете сохранить его в Web.config и ссылаться на него оттуда.

Такие как:

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

Итак, если вы хотите восстановить эту строку, вы можете сделать:

Meh = ConfigurationManager.AppSettings["MyStaticItem"] 

Meh будет Lulz

person Ryan McDonough    schedule 11.09.2012