मेरे पास एक खोज परिणाम पृष्ठ है जहां मैं एक एमवीसी रेजर व्यू का उपयोग करके किसी विशेष तरीके से स्वरूपित वस्तुओं की एक सूची आउटपुट करता हूं।सर्वर-साइड रेजर व्यू और क्लाइंट-साइड jQuery टेम्पलेट के बीच डुप्लिकेट स्वरूपण से बचें
@for (int i = 0; i < group.Count(); i++) {
<div class="result">
<div class="ordinal">@((i+1).ToString()).</div>
<div class="detail"><p>@group.ElementAt(i).Name</p></div>
</div>
}
ग्राहक आगे jQuery AJAX का उपयोग कर JSON और jQuery टेम्पलेट्स के रूप में एक नया डाटासेट पुनर्प्राप्त करने के लिए मूल के स्थान पर resultset रेंडर करने के लिए उन परिणामों को फ़िल्टर कर सकते हैं। यह jQuery खाका है:
<script id="resultTemplate" type="text/x-jquery-tmpl">
{{each(i, result) results}}
<div class="result">
<div class="ordinal">${i+1}.</div>
<div class="detail"><p>${name}</p></div>
</div>
{{/each}}
</script>
जो AJAX कॉल के बाद ही है:
var result = $("#resultTemplate").tmpl({ results: data });
$("#resultsColumn").empty().append(result);
नोट कैसे मैं HTML दोनों सर्वर साइड उस्तरा कोड और ग्राहक में कोई खोज परिणाम के लिए स्वरूपण नकल करने के लिए किया था पक्ष jQuery कोड। जब मुझे परिवर्तन करना पड़ता है तो मैं विसंगतियों के अवसर को कम करने के लिए डेटा बाध्य टेम्पलेट का केवल एक संस्करण रखना चाहता हूं।
Stephen Walter's Intro to jQuery Templates पढ़ना 0 एएसपी.नेट एमवीसी के साथ jQuery टेम्पलेट्स का उपयोग करते समय वह "बेहतर एक साथ" एकीकरण पर संकेत दे रहा है, इसलिए मैं सोच रहा था कि उपरोक्त परिदृश्य को संबोधित करने वाली सुविधा है या नहीं।
धन्यवाद।
यह सरल टेम्पलेट्स के लिए काम करना चाहिए और मैं मानता हूं कि यह जटिल टेम्पलेट्स के लिए अनजाने में बन जाता है (वास्तव में मेरा jQuery टेम्पलेट संरचना का उपयोग करता है, ऊपर एक सरलीकृत उदाहरण है)। यह अच्छा होगा अगर रेजर और jQuery टेम्पलेट्स सामान्य सिंटैक्स साझा करेंगे, सिवाय इसके कि पीएचपी भीड़ को परेशान करेगा;) और जब आप अधिक विशिष्ट भाषा संरचनाओं का उपयोग शुरू करते हैं तो जल्द ही सीमाओं में भाग लेंगे। – stefann