Чтение cookie в c #

Я хочу, чтобы кто-то, кто посещает мой интернационализированный сайт, смог изменить язык. Я подумал, что лучшим способом было бы сохранить язык, выбранный в куки-файле, поэтому при загрузке страницы он может найти предпочтительный язык в куки-файле.

Запись файла cookie идет отлично, но я постоянно сталкиваюсь с ошибками, пытаясь его прочитать. Поскольку я новичок в C #, у меня возникли проблемы с переводом ошибок, которые бросает в меня Visual Studio.

Я хочу, чтобы значение файла cookie называлось «UserSettings». в строке под названием lang. Я пытаюсь так:

string lang = Request.Cookies["UserSettings"].Value;

Выдает ошибку:

Object reference not set to an instance of an object

Я думаю, что проблема должна быть в правой части утверждения, так как я инициализирую строку в левой части.

Я также попытался создать экземпляр cookie, выполнив

HttpCookie cookie = Request.Cookies["UserSettings"].Value;

но визуальной студии это совсем не нравится.

Что я делаю неправильно? Нужно ли создавать экземпляр объекта Request? Любая помощь будет оценена.

Я следую различным учебникам по этой теме, но все они приводят к одной и той же ошибке.

EDIT: Я заметил, что у меня было

HttpCookie cookie = Request.Cookies["UserSettings"].Value;

Я изменил это на:

HttpCookie cookie = Request.Cookies["UserSettings"]; 

но не повезло, это все равно не сработало.

EDIT: вот как делается мое печенье

 public void Application_BeginRequest()
    {
        myCookie = new HttpCookie("UserSettings");
        myCookie.Value = "nl";
        myCookie.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(myCookie);
        hc = new HomeController();
    }

Мой cookie там на 100%, я абсолютно уверен, я вижу его в Firefox-веб-разработчике.

ОБНОВЛЕНИЕ: это точный код, который я сейчас вызываю

        public string getLang()
    {
       // HttpCookie aCookie = Request.Cookies["UserSettings"];
       //  string lang = Server.HtmlEncode(aCookie.Value);
       //  if (lang != null)
       // {
       //      currentLanguage = lang;
       //  }
        return currentLanguage;
    }

таким образом, мой код компилируется, если я раскомментирую свой код, то это происходит (ошибка @ первая строка этого метода)

Ответы на вопрос(7)

Ваш ответ на вопрос