2011-02-23 16 views
5

मेरे पास jQuery + रेजर के बारे में कोई प्रश्न है .. मैं @ Url.Action के साथ रेजर का उपयोग करके जावास्क्रिप्ट चर बनाना चाहता हूं और HTML विशेषता इनपुट के मान होंगे। इस तरह:रेजर एमवीसी 3 + jquery + UrlAction + PartialViews

var d1 = $('#d1').val();
var d2 = $('#d2').val();
var url = "@Url.Action("Links", "PartialAccount", new { beginDate = "d1", endDate = "d2" })"
$("#links").fadeOut("slow").load(url).fadeIn("slow");

मैं यह कैसे कर सकते हैं?

क्या यह वही है जो नीचे है?
var url = "/PartialAccount/Links/?beginDate=" + d1 + "&endDate=" + d2;

उत्तर

10

आप के रूप InfernalBadger द्वारा प्रस्तावित load विधि का उपयोग करना चाहिए:

load('@Url.Action("Links", "PartialAccount")', { beginDate: d1, endDate: d2}) 

क्योंकि यह सही ढंग से d1 और d2 में पैरामीटर एन्कोड होगा। लेकिन केवल तभी जब आप क्वेरीस्ट्रिंग के हिस्से के रूप में पैरामीटर पास कर सकते हैं, न कि जब वे यूआरएल का हिस्सा हों।

इसलिए यदि आप अपने यूआरएल होना चाहते हैं आप का उपयोग कर सकते हैं:

/bar/foo?beginDate=1-1-2001&endDate=2-2-2001 

(ध्यान दें कि/'तारीख में इनकोडिंग किया जाएगा)

आप इस का उपयोग नहीं कर सकते हैं अगर आप अपने यूआरएल चाहते हैं होने के लिए:

/bar/foo/1-1-2001/2-2-2001 

@Url विधि, BeginDate और endData मानकों के साथ, काम नहीं करता है, क्योंकि यह, सर्वर पर निष्पादित किया जाता है इससे पहले कि पेज ब्राउज़र को भेज रहा है।

और + ऑपरेटर का उपयोग कर आपकी विधि में विफल रहता है उपयोगकर्ता इनपुट बॉक्स (जैसे डैश /) में "विशेष वर्ण" में प्रवेश करता है।

4

मैं लोड के डेटा पैरामीटर के माध्यम से दो मानों से होकर गुजरेगा() आप डोम तत्वों से मूल्यों को प्राप्त करना चाहते हैं?

$("#links").fadeOut("slow").load(url, { beginDate: d1, endDate: d2}).fadeIn("slow"); 
संबंधित मुद्दे