J'essaie de mettre un cookie pour stocker un département sélectionné. Le cookie est réglé avec une petite forme qui a un select-dropdown avec les ministères. Ceci est posté en utilisant AJAX.ASP.NET - Pourquoi mon cookie n'est-il pas conservé?
Voici comment je stocke le 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
La variable .newDepartment
est retournée correctement avec la valeur correcte.
Voilà comment je récupère le cookie et bâtissez la sélection-menu déroulant:
<% 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%>
Le cookie n'est pas stocké, car la sélection-menu déroulant continue de retourner à Default
. Est-ce que je fais quelque chose de mal?
Ok ça m'a donné plus d'infos. Il s'avère que je nettoyais la valeur de cookie où je recevais la valeur. Mais d'une manière ou d'une autre, la valeur d'expiration est TOUJOURS en fin de session. Response.Cookies ("department"). Expires = Now.AddDays (7) ne semble pas passer? – Ropstah