0

私はこれを理解しようとしてひどい時間を過ごしており、検索しても良い結果が得られません。

Jqueryを使用してページにCookieを作成しました

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

しかし、codebehind に到達すると、その Cookie が表示されますが、エンコードされているため値が分離されていないため、複数ではなく 1 つの値として扱われます。そう:

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

何も表示されない

Request.Cookies("Relation").Value = "tb1Relation%3Dsomething%26tb2Fname%3Dsomethingelse"

Cookieがurlencodeされているため、私が知ることができることから、その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("=")

私が完全に見逃しているより良い解決策はありますか?

編集:間違ったことを指しているように見えたので、いくつかのコードを修正しました。今はもっと理にかなっているはずです

4

2 に答える 2

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) : "";
}
于 2013-10-09T21:27:17.213 に答える