Чтение многозначного cookie в .net коде из js cookie

0

У меня ужасное время, пытаясь понять это, и поиск не приносит никаких хороших результатов.

Я создал файл cookie на моей странице с JQuery

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, но я не могу понять, как их unencode для этого объекта 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("=")

Какие-нибудь лучшие решения, которые я полностью потерял?

Изменение: исправлен некоторый код, потому что я выглядел так, как будто я указывал на неправильную вещь. Должен иметь больше смысла сейчас

Теги:
cookies

2 ответа

0

Поэтому после большого расследования я обнаружил, что мне пришлось добавить:

$.cookie.raw = true;

перед созданием файла cookie, и теперь я могу получить доступ к файлу cookie обычным способом в коде

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

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) : "";
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню