2009-07-06 4 views
1

Я пытаюсь установить куки-файл для хранения выбранного отдела. Куки-файл настроен с небольшой формой, которая имеет выпадающее меню с отделами. Это опубликовано с использованием AJAX.ASP.NET - Почему мой файл cookie не сохраняется?

Это, как я хранить печенье:

<AcceptVerbs(HttpVerbs.Post)> _ 
Function ChangeDepartment(ByVal FormValues As FormCollection) As ActionResult 
    If Response.Cookies("department") IsNot Nothing Then 
     Response.Cookies("department").Value = FormValues("department") 
    Else 
     Dim c As New HttpCookie("department") 
     c.Value = FormValues("department") 
     c.Expires = Now.AddDays(7) 
     Response.Cookies.Add(c) 
    End If 

    Return Json(New With {.newDepartment = Response.Cookies("department").Value}) 
End Function 

Переменная .newDepartment правильно возвращенное с правильным значением.

Это, как я получить печенье и построить Select-выпадающее меню:

<% Ajax.BeginRouteForm("ChangeDepartment", New AjaxOptions With {.LoadingElementId = "loading", .HttpMethod = "post", .OnSuccess = "function(request) {ajaxMessage('Department change', 'Department changed to: ' + request.get_response().get_object().newDepartment);}"})%> 
    <select name="department"> 
     <option>Default</option> 
     <option<%If Request.Cookies("department") Isnot Nothing andAlso Request.Cookies("department").Value = "Supervisor" Then Response.Write (" selected=""selected""") %>>Supervisor</option> 
     <option<%If Request.Cookies("department") Isnot Nothing andAlso Request.Cookies("department").Value = "Purchasing" Then Response.Write (" selected=""selected""") %>>Purchasing</option> 
     <option<%If Request.Cookies("department") Isnot Nothing andAlso Request.Cookies("department").Value = "Engineering" Then Response.Write (" selected=""selected""") %>>Engineering</option> 
    </select> 
    <input type="submit" value="Change department" /> 
<% Html.EndForm%> 

Куки не сохраняется, потому что выбор-выпадающий продолжает идти назад к Default. Я делаю что-то неправильно?

ответ

1

Вы можете попробовать использовать http-отладчик, например Fiddler для IE и HttpFox для FireFox. Проверьте, действительно ли файл cookie отправляется с ответом сервера, и если браузер отправляет его с дальнейшими запросами. Оттуда вы, вероятно, собираетесь отслеживать проблему и посмотреть, что происходит не так. Если у вас все еще есть проблемы, вы можете опубликовать http-трафик.

+0

Хорошо, что дало мне дополнительную информацию. Оказывается, я очищал значение cookie, где получаю значение. Но как-то значение expires-значение ВСЕГДА заканчивается в конце сеанса. Response.Cookies («department»). Expires = Now.AddDays (7), похоже, не проходит? – Ropstah

Смежные вопросы