HttpContext.Corrente.Richiesta.I cookie non valore di carico dopo la ricarica

Sto lavorando su un multilingue C# sito web . Ho scritto un databaselanguages File e le Lingue in classe. In questa classe ho messo tutte le stringhe nella lingua appropriata. Per impostazione predefinita, la lingua olandese, a meno che non c’è un cookie. Prima stavo usando il linguaggio di classe mi aveva scritto in default aspx.cs e richiesto il cookie come questo:

Context.Request.Cookies ["lancookie"];

Se la lingua è stata cambiata, ho cambiato il cookie e ricaricare la pagina.
Nella classe di lingua io uso:

HttpContext.Current.Request.Cookies ["lancookie"].Value;

Se cambio la lingua, poi prende un paio di minuti prima che anche semplicemente carichi. Cosa posso fare per attivare i cookie?

 

    public class Language
    {

      public static string getLanCookie ()
      {
        lancookie string = string.Empty;
        if (HttpContext.Current.Request.Cookies ["lancookie"]. Value! = null)
        {
            lancookie HttpContext.Current.Request.Cookies = ["lancookie"]. Value;
        }
        else
        {
            lancookie = "Dutch";
        }
        lancookie return;
      }

       public static string language = getLanCookie ()
       public static string Home = Language ("Home", language);
       public static string end = Language ("The End", language);
       public static string Subject = Language ("Box", language);

   }
A parte: Se si sta utilizzando una versione “moderna” di Internet Explorer, è possibile utilizzare gli strumenti di sviluppo F12 per visualizzare i cookie ricevuti e trasmessi dal browser. (Altri browser probabilmente hanno strumenti simili, ma possono essere di fiducia per funzionare correttamente.)

OriginaleL’autore GMBrian | 2012-08-07

1 risposta

  1. 2

    È necessario utilizzare

    HttpContext.Corrente.Risposta.I cookie

    per impostare una nuova. Per essere in grado di cancellare un cookie è necessario impostare la data di scadenza per essere in passato. Non andare troppo nel dettaglio, come questo dovrebbe rispondere alla tua domanda:

    Quando usare Richiesta.I cookie su Risposta.I cookie?

    che è il codice che uso ora. che ha un ritardo. se (HttpContext.Corrente.Richiesta.Cookies[“lancookie”].Valore != null) { HttpContext.Corrente.Richiesta.Cookies[“lancookie”].Expires = DateTime.Ora.AddDays(-1); } HttpCookie cookie = new HttpCookie(“lancookie”) { Valore = lan, Expires = DateTime.Ora.AddMonths(1) }; HttpContext.Corrente.Risposta.I cookie.Aggiungere(cookie);
    Su reload, prima che il pageload il cookie è il vecchio valore. Ma sulla risposta.scrivere nel caricamento della pagina il cookie è un buon valore.
    Ho trovato che quando salva la classe di lingua, di nuovo, il cookie è leggere direttamente il nuovo valore. Sembra essere un problema di memorizzazione nella cache.

    OriginaleL’autore Donatas Bacius

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *