2010-08-18 7 views
13

में स्क्रिप्ट टैग पर runat = "server" का उपयोग कैसे कर सकता हूं, मुझे सर्वर पर इसे चलाने की आवश्यकता नहीं है, हालांकि, मैं ~/js/somefile.js वाक्यविन्यास का उपयोग करना चाहता हूं।मैं asp.Net

पहले, मैंने बस पूर्ण पथ के साथ सबकुछ सेट किया था और मेरी परियोजना को रूट स्तर पर सेट किया था। इसलिए, मैं बस अपनी सभी स्टाइलशीट्स, पृष्ठभूमि छवियों और जावास्क्रिप्ट फ़ाइलों को /css/somefile.css

हालांकि घोषित करता हूं, हालांकि, इस प्रोजेक्ट के लिए, यह रूट के रूप में नहीं चलता है।

मैं स्क्रिप्ट टैग पर runat="server" नहीं डाल सकता।

हालांकि मैं इसे एक लिंक टैग पर रख सकता हूं।

यह कुछ सरल उत्तरों के साथ एक आम समस्या होनी चाहिए।

उत्तर

19

क्या मैं हमेशा किया है एक सामान्य script टैग का उपयोग और src<% %> में टैग कर दिया, के रूप में सचित्र here है इसके लिए स्क्रिप्ट मैनेजर:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
     <Scripts> 
      <asp:ScriptReference Path="~/js/somefile.js" /> 
     </Scripts> 
</asp:ScriptManager> 
+0

Thanx! हाँ, अब मुझे यह पहले याद रखना याद है। – Armstrongest

+0

इस पोस्ट के मुताबिक, बस एक एफवाईआई: http://stackoverflow.com/questions/778952/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blo इसका उपयोग करना बेहतर है # (डेटा बाइंडिंग अभिव्यक्ति) और पीछे से बांधें। – Armstrongest

+0

@ डीएल -_-एलबी: पहले कभी नहीं देखा, लेकिन यह समझ में आता है। धन्यवाद! – David

3

आप पथ स्ट्रिंग के अंदर फ़ंक्शंस का उपयोग कर सकते हैं, उदाहरण के लिए, उदा।

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

हालांकि यह है कि स्थानीय पथ के लिए ASP.NET MVC वाक्य रचना है - मैं अपने सिर के ऊपर से रूपों संस्करण याद नहीं कर सकते।

<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script> 
+0

रूपों संस्करण में ही है यहाँ उदाहरण है। एमवीसी वाक्यविन्यास वेब रूपों से विरासत में मिला है। –

+0

@ जोएल मेरा मतलब है कि 'उरेलहेल्पर' वर्ग जिसका मैं उपयोग कर रहा हूं वह केवल एमवीसी है। जैसे-जैसे दूसरे ने मुझे हराया, फॉर्म संस्करण 'System.Web.UI.Control' पर' ResolveUrl' है। – Rup

1

dailycoding.com से लिया:

<script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script> 
+0

हाहा, एक मिनट से पीटा! – palswim

11

आप उपयोग कर सकते हैं

+0

मैंने पहले ऐसा किया है, हाँ ... मुझे आश्चर्य है कि सबसे अच्छा तरीका क्या है। क्या यह कोई अन्य ओवरहेड जोड़ता है? – Armstrongest

+0

स्क्रिप्ट मैनेजर (या टूलकिटमेनगर) आम तौर पर एएसपी में आदर्श विकल्प है।नेट वेबफॉर्म। –

+2

ResolveUrl पर क्यों पसंद किया जाता है? – Armstrongest

2

आप एएसपी के साथ स्क्रिप्ट टैग लपेटकर द्वारा पूरी तरह से तुम क्या चाहते प्राप्त कर सकते हैं: ContentPlaceHolder और तुम्हारे पीछे कोड से पहुंच सकते हैं, उदाहरण के सेट के लिए यह या निष्पादित किया जाएगा दिखाई संपत्ति को सच या निर्धारित करके नहीं झूठी

<asp:ContentPlaceHolder runat="server" ID="PrintPreviewBlock" Visible="false"> 
    <script id="PrintPageCall" type="text/javascript" > 
     $(function() { 
      window.print(); 
     }); 
    </script> 
</asp:ContentPlaceHolder> 

और पीछे कोड से:

PrintPreviewBlock.Visible = true;