2013-01-31 9 views
7

मैं एक इनहाउस टूल का उपयोग कर रहा हूं जिसे हमने जेनरेट मॉडल के साथ रेज़र टेम्पलेट्स को पार्स करने के लिए विकसित किया है। बात यह है कि अब इसे हर बार टेम्पलेट को लोड करने के लिए इसे लोड करने की आवश्यकता है। मैं एक एडियर जोड़ना चाहता था ताकि मैं इसे लिखते समय cshtml का पूर्वावलोकन कर सकूं, इसलिए मैंने सोचा कि यह एक दृश्य स्टूडियो एक्सटेंशन बनाने का सबसे अच्छा तरीका होगा।क्या सीएसटीएमएल रेजर संपादक के लिए डिज़ाइनर व्यू जोड़ने का कोई तरीका है?

मैंने वेब पर शोध किया और ऐसा लगता है कि आप वीएस के लिए एक कस्टम संपादक लिख सकते हैं, लेकिन फिर मुझे खुद को संपादक लिखना है, जिसे मैं नहीं करना चाहता।

क्या वीएस2012 में निर्मित मौजूदा रेज़र संपादक का उपयोग करने का कोई तरीका है और मेरे नियंत्रण के साथ एक पूर्वावलोकन टैब जोड़ें जो रेज़र संपादक से वर्तमान पाठ प्राप्त करता है ताकि मैं इसे पार्स कर सकूं और पूर्वावलोकन दिखा सकूं?

कारण उपयोग करने के लिए मौजूदा संपादक रंग, IntelliSense, त्रुटि से निपटने के लिए है चाहता हूँ आदि

उत्तर

9

कोई अंतर्निहित समर्थन उस्तरा (CSHTML और VBHTML) फ़ाइलों के लिए एक डिजाइन देखने के लिए। इसका कारण यह है कि वे कोड और एचटीएमएल का मिश्रण हैं, जो "बहुत कठिन" से "सुपर असंभव" तक पार्स करने के लिए हैं।

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

http://msdn.microsoft.com/en-us/library/hh420390(v=VS.110).aspx देखें और "पृष्ठ निरीक्षक" अनुभाग देखें, जिसमें कई ब्लॉग पोस्ट और वीडियो के लिंक शामिल हैं जो गहराई से सुविधा का वर्णन करते हैं।

यहाँ एक अंश है:

पृष्ठ इंस्पेक्टर एक उपकरण है कि एक वेब पेज (एचटीएमएल, वेब फार्म, ASP.NET MVC, या वेब पेज) सीधे विजुअल स्टूडियो IDE के भीतर renders है। आप स्रोत कोड और परिणामी आउटपुट दोनों की जांच करने के लिए पेज इंस्पेक्टर का उपयोग कर सकते हैं। एएसपी.नेट पृष्ठों के लिए, आप यह निर्धारित करने के लिए पेज इंस्पेक्टर का उपयोग कर सकते हैं कि कौन से सर्वर-साइड कोड ने HTML मार्कअप को ब्राउज़र में प्रस्तुत किया है। पेज इंस्पेक्टर तब भी काम करता है जब डिफ़ॉल्ट एएसपी.नेट बंडलिंग और मिनीफिकेशन फीचर्स सक्षम होते हैं।

+0

यदि यह डिज़ाइन समय पर पार्स करने के लिए "सुपर असंभव" है, तो रन टाइम पर इसे इतनी आसानी से पार्स क्यों किया जाता है? कोड सेगमेंट को स्थिर प्लेसहोल्डर मूल्यों के साथ क्यों बदला नहीं जा सकता है? – Dan

+0

@ डैन रेजर पार्सर बहुत कम HTML या C# पार्स करता है। यह ज्यादातर '@' की तलाश में खुद को चिंतित करता है जो एक संक्रमण को इंगित करता है, और कुछ अन्य स्थानों जहां एचटीएमएल और सी # के बीच संक्रमण अंतर्निहित है, जैसे सी # ब्लॉक में सीधे HTML टैग होना (जो मान्य सी #)। उस तथ्य को जोड़ें कि सी # और एचटीएमएल दोनों विकसित हो रहे हैं, रेजर पार्सर इस प्रकार लिखा गया है कि * इनमें से किसी भी भाषा में * अधिकांश * परिवर्तन पार्सर को प्रभावित नहीं करते हैं। तो शायद "सुपर असंभव" की बजाय सच्चाई "बहुत मुश्किल" के करीब है। – Eilon

+1

यह बहुत खराब पृष्ठ निरीक्षक वीएस 2015 में मौजूद नहीं है। :( – Dan

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