2013-04-02 6 views
7

मैं एमवीसी के साथ एएसपी.Net 4 का उपयोग कर साइट पर काम कर रहा हूं। मैं WebForms & जावास्क्रिप्ट से बहुत परिचित हूं, और jquery का उपयोग किया है, लेकिन बंडलिंग मुझे भ्रमित कर रहा है। जो मैं बता सकता हूं, सभी जावास्क्रिप्ट फ़ाइलों को BundleConfig.cs में लपेटा गया है, और साइट.मास्टर फ़ाइल में शीर्षलेख के साथ डाउनलोड किया गया है। तो, मुझे बस अपने अतिरिक्त कार्यों और नए टैग में jquery कॉल डालने में सक्षम होना चाहिए।मैं एएसपीनेट एमवीसी 4 में jquery का उपयोग कैसे करूं?

लेकिन यह स्पष्ट है कि जिस तरह से jquery फ़ंक्शंस फ़ाइलों में जाना है, वह मेरे द्वारा उपयोग किए जाने वाले कार्यों से बिल्कुल अलग है, और मुझे कुछ भी संचालित करने के लिए कुछ भी नहीं मिल सकता है।

क्या कोई छोटा ट्यूटोरियल है जो मुझे एमवीसी में ऐसा करने का उचित तरीका दिखा सकता है? और रेजर नहीं, मुझे यहां दो सीखने की वक्र की आवश्यकता नहीं है।

+0

यह सुनिश्चित करें कि मेरी jquery काम नहीं कर रहा था, लेकिन यह चला गया। अगर मैं समझता हूं कि समस्या क्या है तो मैं वापस पोस्ट करूंगा। – Random

उत्तर

1

मुझे आपकी समस्या नहीं आती है, लेकिन क्या आपको पता है कि बंडल क्या है? सबसे पहले, पूरी सुविधा को समझने के लिए इस आर्टसील पर एक नज़र डालें: http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

आपको एएसपीनेट एमवीसी में बंडलों का उपयोग करने की आवश्यकता नहीं है। आप इसे प्रोजेक्ट से हटा सकते हैं और समस्याओं के बिना अपने लेआउट पेज में अपनी जावास्क्रिप्ट फाइलें जोड़ सकते हैं। आप मैन्युअल रूप से लेआउट पेज में जोड़ सकते हैं और अपने funcitons को किसी अन्य जेएस फ़ाइल में जोड़ सकते हैं और व्यू (या लेआउट भी) पर संलग्न कर सकते हैं। Asp.Net एमवीसी WebForms की तुलना में एक और approuch है।

उस्तरा एक Viewengine है और आप @ चार का उपयोग कर, नमूने के लिए सर्वर साइड कोड लिख सकते हैं: @Html.TextBox("Name") हम asp.net MVC के 3 के बाद से है, लेकिन आप भी ASPX इंजन लिख सकते हैं नमूना के लिए: <%: Html.TextBox("Name") %> के रूप में आप कर WebForms में somethings। (मैं रेजर की सलाह देता हूं, क्योंकि यह लिखना, पढ़ना और उपयोग करना तेज़ है)।

यहाँ ViewEngines बारे में और जानें: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

11

, कोई 'उचित' जिस तरह से MVC में यह करने के लिए नहीं है यह आप पर निर्भर करता है।

ऐसा करने के कई सामान्य तरीके हैं।

आप script टैग में रखकर अपने विचारों के भीतर JQuery फ़ंक्शन 'इनलाइन' डाल सकते हैं उदा।

<script> 
    $('a').click(function() { alert("Click"); }); 
</script> 

बहरहाल, यह आम तौर पर अनुशंसित नहीं है, क्योंकि यह आपके जे एस कठिन का प्रबंधन और फिर से उपयोग करने के लिए बनाता है और अपने HTML bloats। यदि आप स्क्रिप्ट का असली छोटा टुकड़ा रखते हैं, तो शायद आप ऐसा ही करेंगे, और ऐसा नहीं लगता कि यह एक नई फाइल बनाने के लायक था।

वैकल्पिक रूप से, आप अपने एचटीएमएल को अलग जेएस फाइलों में रख सकते हैं, और इन्हें अपने विचारों में संदर्भ शामिल कर सकते हैं उदा।

<script src="~/Scripts/mycusomtjquery.js"></script>

इस रूप में यह अनुमति देने के फिर से उपयोग करता है और अपने HTML ब्लोट नहीं करता है, के साथ साथ ब्राउज़र यह कैश करने के लिए सक्षम है बेहतर है,।

एमवीसी 4 में बंडलिंग सुविधा का लाभ उठाने और इसका उपयोग करने का एक बेहतर विकल्प है। अपने जेएस को एक अलग फ़ाइल में रखें, इसे एक बंडल के रूप में पंजीकृत करें, और इसे अपने दृश्य में प्रस्तुत करें

उदा।

आपको अलग-अलग फ़ाइलों में जेएस बनाएं और वहां अपना कस्टम कोड रखें।

App_Start \ BundleConfig.cs

bundles.Add(new ScriptBundle("~/bundles/mycustomjquery") 
        .Include("~/Scripts/mycustomjquery.js") 
        .Include("~/Scripts/myothercustomjquery.js")); 

में रखें कि यह आपके ध्यान में रखते हुए बंडल रेंडर करने के लिए एक minfied में

@Scripts.Render("~/bundles/mycustomjquery") 

यह आपके js प्रस्तुत करना होगा एक कॉल जोड़ें और तरीके है कि हो सकता है विलय कर दिया ब्रोसर द्वारा कैश किया गया।

आप इसे अनुकूलित करने के लिए कॉन्फ़िगर कर सकते हैं। चुनें कि अपनी जेएस फाइलों को कैसे बंडल करें, कितनी वास्तविक जेएस फाइलें बनाना है, उन्हें कहां प्रस्तुत करना है।

संबंधित मुद्दे