मुझे कुकीज़ में समस्या है, यह कक्षा में मेरा पढ़ने और लिखने का कोड है:

public static class language
{
   public static void set_default(string name)
   {
       HttpContext.Current.Response.Cookies.Remove("language");
       HttpCookie language = new HttpCookie("language");
       language["name"] = name;
       language.Expires = DateTime.Now.AddDays(1d);
       HttpContext.Current.Response.Cookies.Add(language);
   }

   public static string get_default()
   {
       string name = string.Empty;
       HttpCookie langauge = HttpContext.Current.Response.Cookies.Get("language");
       name = langauge["name"];
       return name;
   }
}

जब मैं अगले पृष्ठ पर जाता हूं और डिफ़ॉल्ट भाषा प्राप्त करने के लिए @language.get_default() का उपयोग करता हूं, तो प्रतिक्रिया null होती है - क्यों?

6
Mohammad Esmaeili 29 जुलाई 2018, 09:23

2 जवाब

सबसे बढ़िया उत्तर

कुकीज लिखते समय, आप कुकीज को Response में जोड़ते हैं। उन्हें पढ़ते समय आपको Request का उपयोग करना चाहिए:

HttpCookie language = HttpContext.Current.Request.Cookies.Get("language");

तो set_default() सही है, लेकिन आपको get_default() में बदलाव करना चाहिए

11
GregD 13 सितंबर 2018, 17:21

मुझे यकीन नहीं है कि language.Expires = DateTime.Now.AddDays(1d); सही है। DateTime.Now.AddDays एक पूर्णांक स्वीकार करता है और 1d नहीं है।

कुकी बनाएं:

HttpContext.Response.Cookies.Append("language", "ENGLISH", new CookieOptions()
            {
                Expires = DateTime.Now.AddDays(5)
            });

कुकी प्राप्त करें:

 string language = HttpContext.Request.Cookies["language"];

कुकी हटाएं:

HttpContext.Response.Cookies.Append("language", "", new CookieOptions()
            {
                Expires = DateTime.Now.AddDays(-1)
            });

या

HttpContext.Response.Cookies.Delete("language");
5
McKabue 29 जुलाई 2018, 09:44