2015-03-10 3 views
1

Я создаю создание cookie в PageB и при нажатии на ссылку PageA здесь перенаправляется на страницу PageA. Но я не вижу cookie в PageA. Я не уверен, что мне здесь не хватает.asp.net MVC cookie имеет значение null, пока страница перенаправляется

[HttpGet] 
     public ActionResult PageA() 
     {    

      if (Request.Cookies["bCookie"] != null) { 
      //code 
      }  
      return ActionResult(View(PageA)); 
     } 


     [HttpPost] 
     public ActionResult PageB(Model bCookieM) 
     { 
      HttpCookie bCookie= new HttpCookie("bCookie"); 
      bCookie.Value = bCookieM.ToString(); 

      Response.Cookies.Add(bCookie);      

      return View(PageB); 
     } 
+1

Попробуйте установить срок годности? Используйте 'bCookie.Expires' и установите дату в будущем. – Papa

ответ

2

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

Чтобы сделать файл cookie стойким (в течение 24 часов). Сделайте примерно следующее:

Response.Cookies["userName"].Value = userName; 
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1); 

HttpCookie bCookie = new HttpCookie("bCookie"); 
bCookie.Value = bCookieM.ToString(); 
bCookie.Expires = DateTime.Now.AddDays(1); 
Response.Cookies.Add(bCookie); 
+0

По умолчанию срок действия - 1 день. Я вижу в браузере. В любом случае, я добавил, но все равно это null. – user3194721

+0

@ user3194721 Вы можете только прочитать файл cookie, как только браузер отправит запрос. Вам необходимо инициировать этот запрос. – Donal

+0

Да, я читаю, как показано ниже, если (Request.Cookies ["bCookie"]! = Null) { // код } – user3194721