MVC 2 - Файлы cookie не сохраняются - PullRequest
2 голосов
/ 28 января 2011

У меня есть простое приложение, в котором я пытаюсь сохранить значение в моем cookie, но оно не сохраняется. Ниже приведен код, и я не знаю, где проблема.

Код ниже от контроллера:

public ActionResult Index()
{
    string cookieValue = "";

    if (Request.Cookies["my_cookie"] != null)
    {
        cookieValue = Request.Cookies["my_cookie"].Value;
    }

    if (! string.IsNullOrEmpty(cookieValue ))
    {
        ViewData["ck"] = cookieValue;
    }
    else { ViewData["ck"] = "no cookie value"; }

    return View();
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveCookieData(FormCollection formValue)
{
    HttpCookie myCookie = new HttpCookie("my_cookie", formValue["cookieTXT"].ToString());

    Response.Cookies.Add(myCookie);
}

Этот код из вида:

<% using (Html.BeginForm("SaveCookieData", "Home", FormMethod.Post)) { %>
<textarea id="cookieTXT" rows="2" cols="20" runat="server" />
<input id="submitBTN" type="submit" value="Done" runat="server" />
<% } %>

<% if (ViewData["ck"] != null) { %>
<p>Hello Cookie: <%= ViewData["ck"]%></p> 
<% } %>

Исходя из того, что моя форма отправила данные для cookieTXT, она пуста, поскольку значение formValue ["cookieTXT"] пусто Я не могу понять, почему?

Спасибо за помощь.

1 Ответ

3 голосов
/ 28 января 2011

Во-первых: попробуйте использовать

Response.SetCookie(myCookie);

Во-вторых: Вы пытались просмотреть куки, сохраненные в браузере?Я использую Google Chrome для просмотра файлов cookie, которые читаются браузером.Вы также можете использовать fiddler, чтобы увидеть Set-Cookie: в ответе, чтобы увидеть, правильно ли он отвечает.Кроме того, убедитесь, что домен, в котором установлен файл cookie, соответствует домену, который читает файл cookie.

Пример.Domain = domain.com

Ваш сайт должен иметь domain.com в URL, чтобы прочитать cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...