2011-11-25 14 views
6

यह मुझे मोड़ के चारों ओर गाड़ी चला रहा है। मैं लंबे समय से VB.NET फॉर्म डेवलपर हूं, ASP.NET पर काफी नया और MVC पर बिल्कुल नया है। मैं vbhtml पेज बना रहा हूं जो VB.NET Razor सिंटैक्स का उपयोग करते हैं, और मैं लगातार UI के खिलाफ लड़ रहा हूं जो मेरे कोड को गलत तरीके से इंडेंट करने का प्रयास कर रहा है। जैसे ही मैंने मारामैं vbtml रेज़र फ़ाइलों में कोड इंडेंटेशन सही ढंग से कैसे व्यवहार कर सकता हूं?

@Code 
    Layout = Nothing 
End Code 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div> 
     @If True Then 
      @<ul> 
       @For x = 1 To 2 

       Next 
      </ul> 
       End If '<-- Randomly indented too far 
    </div> 
</body> 
</html> 

उपरोक्त उदाहरण में, Next के बाद लौटने के लिए, End If दो पंक्तियों नीचे बेतरतीब ढंग से जहां यह होना चाहिए से आगे दो टैब कूदता है: निम्न उदाहरण, एक नया Razor दृश्य के लिए टेम्पलेट पेज के आधार पर ले लो हो। अन्य उदाहरणों में मैंने एक सर्कल मारा है जहां एक पंक्ति को सही जगह पर धक्का देना दूसरी स्थिति को स्थिति से बाहर फेंकता है और इसके विपरीत।

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

मैंने सोचा कि एक एक्सटेंशन समस्या का कारण बन सकता है लेकिन मैंने उन्हें सभी को अक्षम कर दिया और पुनरारंभ किया और समस्या बनी हुई है। क्या मैं कुछ मौलिक रूप से गलत कर रहा हूँ? मुझे विश्वास करना मुश्किल लगता है कि Microsoft कुछ खराब हो जाएगा, इसलिए ऐसा लगता है कि मैं इसे सही तरीके से उपयोग नहीं कर रहा हूं।

+0

मुझे लगता है कि आप "पूरे दस्तावेज़ को प्रारूपित करें" विकल्प का उपयोग कर सकते हैं जो विजुअल स्टूडियो में "HTML स्रोत संपादन" टूल का हिस्सा है। वैकल्पिक रूप से आप दस्तावेज प्रारूपित करने के लिए नियमित आधार पर कमांड (Ctrl + E, D) का उपयोग कर सकते हैं। – pramodtech

+1

@Pramodtech: मेरे वातावरण में, Ctrl + E, D "मौजूदा फ़ाइल जोड़ें" संवाद लाता है, लेकिन मैंने Ctrl + K, D को आजमाया जो पूरे दस्तावेज़ को प्रारूपित करता है। परेशानी यह है कि यह दस्तावेज़ पहले से भी बदतर है। ऐसा लगता है कि एमएस के पास vbhtml के ऑटो इंडेंटेशन में एक गंभीर बग है जो मुझे वास्तव में आश्चर्यजनक लगता है कि वीएस सामान्य रूप से कैसे पॉलिश किया जाता है। – wwarby

+0

@wwarby यह सिर्फ वीबी नहीं है, यह सी # को भी प्रभावित करता है, जो इसे और अधिक मूर्खतापूर्ण बनाता है कि इसे अभी तक संबोधित नहीं किया गया है। –

उत्तर

2

मैं एक और सवाल पर (एक फैशन की) एक समाधान (मैं वास्तव में इस सवाल का पोस्ट करने से पहले कठिन खोज की थी और कुछ भी नहीं मिला) में पाया गया: Why doesn't Visual Studio code formatting work properly for Razor markup?

अनिवार्य रूप से समाधान सुनिश्चित करें कि आपके कोड हो रहा है व्हाइटस्पेस के लिए टैब के बजाय रिक्त स्थान का उपयोग करता है। बढ़ते सफेद स्थान की वजह से पृष्ठ के समग्र आकार को बढ़ाने के दौरान, यह समस्या को कम करता है (जबकि इसे पूरी तरह समाप्त नहीं किया जाता है)। लिंक्ड थ्रेड पर, जो माइक्रोसॉफ्ट के साथ जुड़ा हुआ प्रतीत होता है, उसने स्वीकार किया है कि यह वास्तव में एचटीएमएल और वीबी.नेट के लिए ओवरलैपिंग फॉर्मेटर्स से संबंधित एक बग है जिसे वे एक नई रिलीज में सुधार करने की उम्मीद करते हैं। बैंडविड्थ प्रभाव को कम करने के लिए मैंने प्रति इंडेंट में 2 रिक्त स्थान छोड़े हैं।

योगदान देने वाले लोगों के लिए धन्यवाद।

0

यहां एक बेहतर विकल्प (टैब के लिए रिक्त स्थान का उपयोग करने के बजाय), HTML और C#/VB के लिए ब्लॉक को "स्मार्ट" के बजाय "ब्लॉक" में परिवर्तित करना है। यह एक पूर्ण समाधान नहीं है, लेकिन आईएमओ रिक्त स्थान का उपयोग करने के बजाए बहुत कम दर्दनाक काम है!

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