Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: MaTОтветов: 4

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

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

Спасибо.

  • зависит от того, зависит ли он от пользователя или приложения jgauffin 11.09.2012

global-variables

Ответы

Ответ 1 · рейтинг 3 · Display Name

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

Session["MyKey"] = "MyValue";

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

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

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

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

Ответ 2 · рейтинг 4 · Darin Dimitrov

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

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

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

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

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

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

Ответ 3 · рейтинг 4 · Community

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

}

Ответ 4 · рейтинг 4 · Ryan McDonough

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

Такие как:

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

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

Meh = ConfigurationManager.AppSettings["MyStaticItem"]

Meh будет Lulz

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы