9

मैं विजुअल स्टूडियो 11. का उपयोग कर एक प्रोजेक्ट एएसपीनेट 4, एमवीसी 4 (आरसी) पर काम कर रहा हूं। मैं एक एमवीसी 4 रेजर व्यू प्रस्तुत करने की कोशिश कर रहा हूं जो आंशिक दृश्य प्रस्तुत करता है। मेरे आंशिक दृश्य के लिए मेरे पास कुछ जावास्क्रिप्ट आवश्यक है। मेरे आंशिक दृश्य पर जब मैं स्क्रिप्ट अनुभाग के अंदर अपना जावास्क्रिप्ट शामिल करता हूं, तो यह लोड नहीं होता है। जब दस्तावेज़ तैयार कोड चलाताएमवीसी 4 आंशिक दृश्य जावास्क्रिप्ट बंडलिंग समस्या

@section Scripts { 
    <script type="text/javascript"> 
     $(function() { 
      alert("test"); 
     }); 
    </script> 
} 

अगर मैं स्क्रिप्ट अनुभाग यह jQuery पुस्तकालयों (जो बंडल और मेरे _Layout.cshtml पेज पर प्रस्तुत होने) के रूप में विफल रहता है को दूर अभी तक लोड नहीं किया है।

<script type="text/javascript"> 
    $(function() { 
     alert("test"); 
    }); 
</script> 

_Layout पृष्ठ कोड jQuery पुस्तकालयों

@Scripts.Render("~/bundles/jquery") 
@RenderSection("scripts", required: false) 

किसी को भी इस के लिए एक समाधान पता है लोड करने के लिए, या मैं बस इसके बारे में गलत रास्ते पर जा रहा हूँ? यह मेरा सिर बर्बाद कर रहा है !!

उत्तर

10

आंशिक में एक document.ready में अपनी स्क्रिप्ट लपेट मत करो:

@section Scripts { 
    <script type="text/javascript"> 
     alert("test"); 
    </script> 
} 

आह, और आंशिक में स्क्रिप्ट न रखें। जावास्क्रिप्ट कोड अलग जावास्क्रिप्ट फ़ाइलों में रखा जाना चाहिए। यदि आप आंशिक लोड होने पर कुछ जावास्क्रिप्ट निष्पादित करना चाहते हैं, तो आप इस स्क्रिप्ट को एक पुन: प्रयोज्य फ़ंक्शन/प्लगइन में बाहरी रूप से बाहरी करते हैं जिसे आप आंशिक लोड होने के बाद कॉल करते हैं।

+0

प्रतिक्रिया के लिए धन्यवाद लेकिन यह मेरे लिए काम नहीं करता है। दस्तावेज़ को हटाने के साथ भी। पहले से ही जब मैं पृष्ठ स्रोत को देखता हूं तो जावास्क्रिप्ट पूरी तरह गायब है। यदि मैं जावास्क्रिप्ट को अपने मूल दृश्य में ले जाता हूं (जो आंशिक दृश्य नहीं है) तो यह लोड हो जाता है। लेकिन मुझे पेरिटल व्यू के भार पर इसकी ज़रूरत है। – martin

+0

अंत में यह काम करने के लिए मिला। जब मैंने स्क्रिप्ट के साथ पृष्ठ बनाया – martin

+3

यह बहुत मजेदार है कि आपको @ मार्टिन की समस्या मिली है और उसने आपका स्वयं का जवाब चिह्नित किया है भले ही आपका समाधान सही समाधान था। : डी – Samuel

4

अंत में यह काम करने के लिए मिला। मैंने अपने आंशिक दृश्य से अपना जावास्क्रिप्ट हटा दिया और स्क्रिप्ट अनुभाग में इसे मूल दृश्य (जो आंशिक नहीं है) में रखा। यह स्क्रिप्ट अनुभाग स्वचालित रूप से मचान (बनाएं) के साथ दृश्य बनाते समय बनाया गया था और इसे अंत में रखा गया था पृष्ठ। काम करने के लिए मुझे इसे आंशिक रूप से प्रस्तुत करने के लिए कॉल से पहले पृष्ठ के शीर्ष पर ले जाना पड़ा।

2

ClientDependency बिल्कुल इस समस्या को हल करता है और आपको आंशिक विचारों के लिए स्क्रिप्ट संदर्भ जोड़ने की अनुमति देता है जो पृष्ठ के अंत में (या जहां भी आप निर्दिष्ट करते हैं) पर लुढ़कते हैं और रखे जाते हैं। यह पेज द्वारा बंडलिंग, वर्जनिंग और मिनीफिकेशन पेज से भी संबंधित है।

स्क्रिप्ट संदर्भ को सुनिश्चित करने के ऊपरी हिस्से को आंशिक रूप से मुझे परेशान नहीं करने के बजाय "पैरेंट" व्यू पर है, लेकिन क्लाइंट निर्भरता सहायक हो सकती है यदि आपके पास अपनी आभासी और सीएसएस की आवश्यकता वाले आंशिक भाग हैं।

+0

यहां एक छोटी और सरल विस्तार विधि है जो आंशिक रूप से स्क्रिप्ट की विशिष्ट समस्या हल करती है: http://blog.logrythmik.com/post/A-Script-Block-Templated-Delegate-for-Inline-Scripts-in-Razor-Partials – peter3

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