Cookie in c # lesen

Ich möchte, dass jemand, der meine internationalisierte Website besucht, die Sprache ändern kann. Ich dachte, der beste Weg wäre, die gewählte Sprache in einem Cookie zu speichern. Wenn die Seite geladen wird, kann sie die bevorzugte Sprache im Cookie nachschlagen.

Das Schreiben des Cookies funktioniert einwandfrei, aber beim Versuch, es zu lesen, treten weiterhin Fehler auf. Da ich neu in C # bin, habe ich Probleme, die Fehler zu übersetzen, die Visual Studio auf mich wirft.

Ich möchte den Wert eines Cookies namens "UserSettings" in einer Zeichenfolge namens "lang". Ich versuche es so:

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

Der Fehler, den es auslöst, ist:

Der Objektverweis wurde nicht auf eine Instanz eines Objekts festgelegt

Ich denke, das Problem muss auf der rechten Seite der Anweisung stehen, da ich die Zeichenfolge auf der linken Seite initialisiere.

Ich habe auch versucht, eine Instanz des Cookies zu erstellen

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

aber das visual studio mag das überhaupt nicht.

Was mache ich falsch? Muss ich eine Instanz des Request-Objekts erstellen? Jede Hilfe wäre dankbar.

Ich verfolge verschiedene Tutorials zu diesem Thema, aber alle führen zu demselben Fehler.

BEARBEITEN: Ich habe bemerkt, dass ich hatte

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

Ich habe es geändert in:

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

aber kein glück, es hat immer noch nicht funktioniert.

BEARBEITEN: So wird mein Cookie gemacht

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

Mein Cookie ist zu 100% dort, ich bin absolut sicher, ich kann es in Firefox-Web Developer sehen.

UPDATE: Dies ist der genaue Code, den ich gerade anrufe

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

Auf diese Weise wird mein Code kompiliert. Wenn ich meinen Code auskommentiere, wird er ausgeführt (Fehler in der ersten Zeile dieser Methode).

Antworten auf die Frage(7)

Ihre Antwort auf die Frage