8

मैं अपनी सामग्री पृष्ठ के भीतर मेरी जावास्क्रिप्ट में कुछ मॉडल गुण जोड़ने के लिए कोशिश कर रहा हूँ:जावास्क्रिप्ट को मॉडल मान निर्दिष्ट करते समय ASP.Net MVC 2.0 में कोई इंटेलिजेंस क्यों नहीं है?

$(document).ready(function() { 
    createPager(1, <%=Model.TotalPages %>); 
    createUnprocessedPager(1, <%=Model.TotalUnprocessedPages %>); 
}); 

किसी को भी करता है, तो इस डिजाइन के द्वारा होता है पता है? क्या आप जावास्क्रिप्ट के साथ मॉडल गुणों को गठबंधन करने के लिए नहीं हैं? या यह एक बग है?

यह अपेक्षा के अनुसार काम करता है। हालांकि, वास्तव में कोड लिखते समय <% ... %> टैग के भीतर मेरे पास कोई इंटेलिजेंस नहीं है। अगर मैं <script> टैग के भीतर कोई कोड लिखता हूं, तो कोई इंटेलिजेंस नहीं है। अगर मैं सीधे </script> टैग के नीचे जाता हूं और <% Model.... %> टाइप करता हूं तो बूम, मेरे पास फिर से इंटेलिसेंस है।

अद्यतन: 22/10/2010

बस Scott Guthrie's latest blog post पढ़ सकते हैं और ऐसा लगता है इस कार्यक्षमता ASP.Net MVC के आ रिलीज के साथ जल्द ही बाहर आ रहा है 3 (बीटा के लिए संभवतः के साथ-साथ):

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

+6

यह बहुत उपयोगी नहीं हो सकता है, लेकिन ... यह resharper के साथ काम करता है;) – Necros

उत्तर

1

आप विशेषताओं जैसे कोट्स के अंदर विचारों में इंटेलिसेंस खो देंगे।

<input type="text" value="<%= DateTime.Today.ToShortDateString() %>" /> 

या यदि यह जावास्क्रिप्ट ब्लॉक के अंदर दिखाई देता है।

<script type="text/javascript"> 
    <%= DateTime.Today.ToShortDateString() %> 
    </script> 

यह मेरी राय है कि वहाँ इन स्थितियों में Intellisense होना चाहिए, इसलिए मैं इसे एक बग है और दृश्य स्टूडियो के भावी अपडेट समाधान करने और इस का समाधान हो जाएगा उम्मीद है कि कहेंगे।

5

मुझे लगता है कि कोई वाक्यविन्यास हाइलाइटिंग भी नहीं है। सुनिश्चित नहीं है कि यह एक बग या सुविधा है, लेकिन AFAIK, कोड को इस तरह से संयोजित करना एक अच्छा अभ्यास नहीं है। आम तौर पर इनलाइन जावास्क्रिप्ट एक अच्छा अभ्यास नहीं है, लेकिन यदि आप इसके साथ जाते हैं, तो इसके साथ मॉडल गुणों को गठबंधन करें, और बाद में स्क्रिप्ट को एक अलग जेएस फ़ाइल में निकालने का निर्णय लें, आपका कोड टूट जाएगा। इसलिए, यह अपने मॉडल गुणों के साथ छिपा खानों को भरने और उन्हें jQuery के साथ अपने js में पढ़ने के लिए, बहुत आम है जैसे:

<input type="hidden" id="valTotalPages" value="<%=Model.TotalPages %>" /> 
<input type="hidden" id="valTotalUnprocessedPages" value="<%=Model.TotalUnprocessedPages %>" /> 

... 

// in js 
$(document).ready(function() { 
    createPager(1, $("#valTotalPages").val()); 
    createUnprocessedPager(1, $("#valTotalUnprocessedPages").val()); 
}); 

तो वाक्य रचना हाइलाइटिंग और IntelliSense की कमी एक बग हो सकता है, लेकिन साथ ही हो सकता है एक कुछ कोड पैटर्न को हतोत्साहित करने का तरीका।

+2

नोट: जब आप 'value =" <% = मॉडल कुल पृष्ठ%> "करते हैं तो आप अभी भी इंटेलिजेंस खो देंगे। ऐसा तब होता है जब आप उद्धरणों में '<% %>' लपेटते हैं। – Omar

+0

इसके आसपास कोई रास्ता? या यह एक दृश्य स्टूडियो प्लगइन पाने का मामला है? – GenericTypeTea

+0

छुपा क्षेत्रों को निकालने का परिचय एक अच्छा अभ्यास नहीं है। यह पृष्ठ का आकार बढ़ाता है। मैं बजाय इंटेलिसेंस के साथ रहूंगा। नीचे उतरो। –

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