2009-06-02 23 views
16

एएसपी.नेट एमवीसी में जावास्क्रिप्ट को संदर्भित करने का सही तरीका क्या है? कुछ ऐसा उपयोग करना ../../Scripts/Myscript.js उन पारंपरिक मार्गों के लिए ठीक काम करता है जो पारंपरिक {नियंत्रक}/{action}/{id} हैं, लेकिन इससे कहीं अधिक जटिल या कम जटिल के लिए अधिक नाजुक हैं। अधिक चिंता का विषय यह है कि तर्कसंगत पूर्ण संदर्भ (/Scripts/Myscript.js) विजुअल स्टूडियो में इंटेलिजेंस को तोड़ देता है।एएसपी.नेट एमवीसी में जावास्क्रिप्ट को संदर्भित करने का सही तरीका?

आप इसे कैसे संभालेंगे?

संपादित करें:

src="~/Scripts/Whatever.js" 

कि उस्तरा लिए काफी है आप उन स्थानों का पता: यह स्पष्ट रूप से इस बिंदु पर एक बहुत पुरानी सवाल है, लेकिन मैं उल्लेख करना है कि MVC4 में संपादन कर रहा हूँ, आप सभी की जरूरत है मतलब, रूट पथ का उपयोग कर।

उत्तर

19

<script src="<%= Url.Content("~/Scripts/Myscript.js") %>" type="text/javascript"></script>

+3

करता वी.एस. में IntelliSense काम इस तरह से? –

4

मैं भी js CMerat के रूप में उसी तरह का संदर्भ:

<script type="text/javascript" src="<% =Url.Content("~/Scripts/jquery-1.3.2.min.js") %>"></script> 

आप jQuery के लिए Intellisense की जरूरत है, तो आप instructions on how to set it up here पा सकते हैं। जहां तक ​​मुझे पता है, आप संदर्भित किसी भी कस्टम जेएस फ़ाइल के लिए इंटेलिसेंस नहीं प्राप्त कर सकते हैं - आपको इसके लिए इंटेलिसेंस फ़ाइल बनाने की आवश्यकता होगी।

+0

मैं स्कॉट के निर्देशों के बारे में पता कर रहा हूँ, लेकिन मैं क्या इन प्रतिक्रियाओं से हो रही है कोई रास्ता सही ढंग से स्क्रिप्ट * संदर्भ के लिए और * समर्थन करने वाले यह (jQuery) की तरह फ़ाइलों के लिए IntelliSense काम है, ScriptManager का उपयोग कर के अलावा अन्य है कि देखते हैं। –

+0

भावना .. बनाता है यही कारण है कि ऑटो IntelliSense coz (यदि u यह है कि कॉल करना चाहते हैं) स्क्रिप्ट यह पेज में देख सकते हैं की केवल दूर है। आपकी लिपि के रूप में यह 'जुड़ा हुआ' है, यह देर से बाध्य है और इसलिए आईडीई डिजाइन समय पर इसकी सामग्री से अवगत नहीं है। –

1

मैं इस समय इस के लिए mvccontrib htmlhelpers का उपयोग करता हूं।

This भी उपयोगी हो सकता है।

0

मैं अपने खुद के HtmlHelper एक्सटेंशन कि तरह लग रहे बना लिया है:

public static string MEScriptBlock(this HtmlHelper html, string path, string releasePath) 
{ 
#if DEBUG 
#else 
    if (!string.IsNullOrEmpty(releasePath)) 
     path = releasePath; 
#endif 

    return string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>\r\n", 
         path); 
} 

तो IntelliSense तुम क्या करने के बाद आप यह सोच कर कि एक जे एस फ़ाइल लोड किया गया है में वी.एस. धोखा हो सकता है कर रहे हैं ... जैसे है

<% if (false) 
    { %> 
    <script src="../../Scripts/Myscript.js" type="text/javascript"></script> 
<% } %> 

HTHs, चार्ल्स

17

मामले में किसी और को इस जवाब यह है कि MVC उस्तरा उपयोग कर रहा है पाता है, कि यहाँ के लिए वाक्य रचना है:

<script type="text/javascript" src="@Url.Content("/Scripts/MyScript.js")"></script> 
+7

MVC4 में, आप सभी की जरूरत src = "~/स्क्रिप्ट/Myscript.js" है और उस्तरा यह पता लगा होगा। –

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

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