私はこれで数時間過ごしましたが、これは非常識です。asp.netのCookieに関する問題。 response.redirectの後に戻ってくる値
は、私が「ますsetcookie」機能が含まれているページの基本クラスを持っており、これは基本的にはこれです:
Dim context As HttpContext = System.Web.HttpContext.Current
If context.Request.Cookies(cookieName) Is Nothing Then
Dim cookie As HttpCookie
cookie.Value = cookieValue
cookie.Expires = DateTime.Now.AddDays(7)
context.Response.Cookies.Add(cookie)
Else
Dim cookie As HttpCookie = context.Request.Cookies(cookieName)
cookie.Expires = DateTime.Now.AddDays(7)
cookie.Value = cookieValue
End If
この関数は、単純なaspxページによって呼び出されます。これはテスト環境にあるので、使用しているクッキーには以前の値 "123"があります。私は、デバッグとウォッチウィンドウを使用する場合、私は "168"に正常に値の変更を参照してください。
私はライン上でデバッグブレークポイントを持っている:
Response.Redirect("overview.aspx", False)
ブレークポイントがアクティブになると、ウォッチウィンドウ内の値は以下のとおりです。
currProjectID 168 Integer
HttpContext.Current.Request.Cookies("currProjectID").Value "168" String
(currProjectIDが財産であります
ここで、2番目の変数は、変数の値を "F10"にして上のブレークポイントラインを外します。
これは非常識です!コードはどこにも行きません。デバッグポイントは上記の "response.redirect"の直下にありますが、値は直前の値にすぐに変わります!何も "setcookie"ルーチンの近くに行っていないので、誰かが私の狂気を救い、何がうまくいかないか教えてください!
私はそれを持って遊び続けています。まだ喜んではいません:-(即時ウォッチウィンドウには、 "response.redirect"行を踏み越えるまで正しい更新値が表示されます。この時点で、即座に初期値に戻り、 "setcookie"関数を経由しません。 – TheMook
SQL Serverのセッションベースの変数に戻します – TheMook