2013-10-09 106 views
0

我有一個可怕的時間試圖找出這一點,搜索沒有得到任何好的結果。從js cookie讀取.net代碼中的多值cookie

我在使用jQuery頁面中創建一個cookie,像這樣

var cookieData = { 
       tb1Relation: $("#<%= tb1Relation.ClientID %>").val(), 
       tb2Fname: $("#<%= tb2Fname.ClientID %>").val() 
      } 
      $.cookie("Relation", $.param(cookieData)); 

但是當我到代碼隱藏,我可以看到Cookie,但這些值是不分離的,因爲它的編碼,所以它把它像一個價值而不是多重。所以:

Request.Cookies("Relation")("tb1Relation") 

顯示爲沒有

和Request.Cookies時( 「關係」)值= 「tb1Relation%3Dsomething%26tb2Fname%3Dsomethingelse」

從我可以告訴它,因爲cookie是urlencoded,但我無法弄清楚如何取消它們的Request.Cookies對象。

我最後一種情況是下面的情況,但它很糟糕,我真的想避免這種情況。

Request.Cookies("Relation").Value = HttpUtility.UrlDecode(Request.Cookies("Relation").Value) 

    Dim cookiesSplit() As String = Request.Cookies("formData2").Value.Split("&") 

    'Splits the first array entry into id/val - Really lame though 
    Dim cookieIdVal() As String = cookiesSplit(0).Split("=") 

我完全錯過了更好的解決方案嗎?

編輯:修正了一些代碼,因爲我看起來像是指向了錯誤的東西。現在應該更有意義

回答

0

也許這將有助於......我不得不將cookie讀回到代碼隱藏文本框中,但cookie文本看起來類似於「test1%3Dsomething%26test2%3Dsomethingelse」,所以我有到UrlDecode

private void CheckForCookieText() 
{ 
    string ConclusionText = SystemCookies.getSingleCookie("txtRecommended", ""); 
    txtRecommended.Text = (ConclusionText.Trim().Length > 0) ? HttpUtility.UrlDecode(ConclusionText) : ""; 
} 
0

這麼多的調查後,我發現我不得不補充:

$.cookie.raw = true; 

剛剛創建的cookie之前,現在我能夠訪問該Cookie代碼

正常方式

Request.Cookies("CookieName")("cookieKey")