2009-07-06 13 views
1

私は、選択した部門を格納するためにクッキーを設定しようとしています。クッキーは、小規模なフォームで設定されています。これはAJAXを使用して転記されます。ASP.NET - なぜ私のクッキーは保持されませんか?

<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変数が正しい値を正しく返されます。

は、これは私がクッキーを保存する方法です。

これは私がクッキーを取得し、選択-ドロップダウンを構築する方法である:選択-ドロップダウンが戻っDefaultにいっているので、

<% 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%> 

クッキーは、保存されていません。私は何か間違っているのですか?

答えて

1

IEの場合はFiddler、FireFoxの場合はHttpFoxのようなhttpデバッガを使用できます。 クッキーが実際にサーバーの応答とともに送信されているかどうか、およびブラウザーがそれ以上の要求でそれを送り返すかどうかを確認します。 そこから、おそらく問題を追跡し、何がうまくいかないのかを見極めるつもりです。それでも問題がある場合は、httpトラフィックをここに投稿することができます。

+0

これは私にいくつかの情報を与えました。それは私が値を得ていたクッキーの値をクリアしていたことが分かります。しかし、何とか期限切れ価値はいつもセッションの終わりです。 Response.Cookies( "department")。expires = Now.AddDays(7)は通過しないようですか? – Ropstah

関連する問題