यदि आप एक कुकी सेट करना चाहते हैं जिसमें एकाधिक मान या "उपकुंजी" हैं और उन्हें .NET से पठनीय किया गया है, तो आपको उपकुंजी को नाम-मूल्य जोड़े के रूप में एक क्वेरीस्ट्रिंग की तरह स्वरूपित करने की आवश्यकता है। आप जावास्क्रिप्ट ऑब्जेक्ट को क्वेरीस्ट्रिंग में कनवर्ट करने के लिए jQuery.param() विधि का उपयोग कर सकते हैं।
var email = Request.Cookies["MyTestCookie"]["email"];
var username = Request.Cookies["MyTestCookie"]["username"];
संपादित करें:
var obj = { email: '[email protected]', username: 'jdoe' };
$.cookie("MyTestCookie", $.param(obj), { expires: 10 });
फिर सर्वर पर, आप मूल्यों के रूप में उपयोग कर सकते हैं मैं/पढ़ने को दिखाने के लिए बहु-मूल्य कुकीज़ दोनों लेखन सर्वर और ग्राहक पर एक परीक्षण पृष्ठ बनाया। http://www.systemex.net/Cookies/
नोट:
- आप से बचने और उपकुँजियाँ न छोड़ने की देखभाल की जरूरत है। इस तरह किसी भी एम्बेडेड = और & सही ढंग से संभाले जाते हैं
- जब jquery कुकीज़ को पढ़ और लिखते हैं, तो विकल्प {raw: true} का उपयोग करें ताकि यह बचने से दोगुना न हो। {: मूल्य, NAME2: नाम मान 2}
- मैं एक $ .deparam समारोह है कि एक जावास्क्रिप्ट वस्तु में एक नाम = मूल्य & NAME2 2 = मान स्ट्रिंग में परिवर्तित कर देंगे लिखा
- एक आखिरी बात, jQuery कुकी प्लगइन एक अधिलेखित नहीं करता है एक ही नाम के साथ कुकी, यह बस वर्तमान कुकी संग्रह में संलग्न है।इस बिंदु पर, उपकुंजियों का समर्थन करने और मौजूदा कुकीज़ को संशोधित करने के लिए प्लगइन को फिर से लिखना बेहतर होगा।
वैसे भी उम्मीद है कि इससे मदद मिलती है।
यहाँ Default.aspx
<h1>Get Cookie From Server:</h1>
<ul>
<li>Email: <%= GetCookie("MyTestCookie", "email")%></li>
<li>Username: <%= GetCookie("MyTestCookie", "username")%></li>
</ul>
<h1>Get Cookie From Client:</h1>
<ul>
<li>Email: <span class="cookie" data-name="MyTestCookie" data-key="email" /></li>
<li>Username: <span class="cookie" data-name="MyTestCookie" data-key="username" /></li>
<li>Raw: <span id="raw" /></li>
</ul>
<h1>Set Cookie From Client:</h1>
<ul>
<li>Email: <input type="text" name="email" value="" /></li>
<li>Username: <input type="text" name="username" value="" /></li>
</ul>
<input type="submit" value="Submit" />
<script>
$(function() {
$(".cookie").each(function (index) {
var name = $(this).data('name');
var key = $(this).data('key');
var cookie = $.deparam($.cookie(name, { raw: true }));
$(this).html(cookie[key]);
});
$('#raw').text(escape($.cookie("MyTestCookie"), { raw: true }));
$("form").submit(function() {
var o = {};
o.email = $('input[name=email]').val();
o.username = $('input[name=username]').val();
var value = $.param(o);
var cookie = $.cookie('MyTestCookie', value, { raw: true });
return true;
});
});
jQuery.deparam = function (params) {
var o = {};
if (!params) return o;
var a = params.split('&');
for (var i = 0; i < a.length; i++) {
var pair = a[i].split('=');
o[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
return o;
}
</script>
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var cookie = new HttpCookie("MyTestCookie");
cookie["email"] = HttpUtility.UrlEncode("[email protected]");
cookie["username"] = HttpUtility.UrlEncode("jdoe&123");
Response.Cookies.Add(cookie);
}
}
public string GetCookie(string name, string key)
{
var cookie = Request.Cookies[name];
return cookie != null ? HttpUtility.UrlDecode(cookie[key]) : "";
}
मुझे लगता है कि आप ध्यान में रखते हुए किया जाना चाहिए उस –
के लिए अलग कुकीज़ इसलिए यदि मेरे पास कुकी में स्टोर करने के लिए +10 मान हैं, तो मुझे ऐसा करने के लिए +10 कुकीज़ सेट करनी चाहिए? क्या यह एक कुकी में सभी मूल्यों को रखने के लिए समझ में नहीं आता? –
यदि आप अपनी कुकी में एक जेसन-सीरियलाइज्ड स्ट्रिंग स्टोर करते हैं या अलग कुकीज़ का उपयोग करते हैं तो आप तक। – ThiefMaster