मेरे पास इस तरह का कोड है। क्या इसे लिखना और बनाए रखना आसान है? C # .NET 3.5 का उपयोग करना।
string header(string title)
{
StringWriter s = new StringWriter();
s.WriteLine("{0}","<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
s.WriteLine("{0}", "<html>");
s.WriteLine("<title>{0}</title>", title);
s.WriteLine("{0}","<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">");
s.WriteLine("{0}", "</head>");
s.WriteLine("{0}", "<body>");
s.WriteLine("{0}", "");
}
मैं भी लिख सकता है:
s.WriteLine("{0}", @"blah blah
many
new
lines
blah UHY#$&_#$_*@Y KSDSD<>\t\t\t\t\t\tt\t\t\\\t\t\t\t\\\h\th'\h't\th
hi
done");
यह काम करेगा, लेकिन मुझे सभी को बदलने की जरूरत है"
साथ में""
.
सभी उत्तर
आप शायद एक का उपयोग कर बेहतर कर रहे हैं
HtmlTextWriter
या एXMLWriter
सादे सेStringWriter
। वे आपके लिए भागने की देखभाल करेंगे, साथ ही यह सुनिश्चित करेंगे कि दस्तावेज़ अच्छी तरह से बना है।यह पन्नाका उपयोग करने की मूल बातें दिखाता है
HtmlTextWriter
वर्ग, जिसके होने का सार:जब मैं अन्य भाषाओं में इस समस्या से निपटता हूं तो मैं कोड और HTML के अलगाव के लिए जाता हूं। कुछ इस तरह:
1.) एक HTML टेम्पलेट बनाएँ। उपयोग
[varname]
प्लेसहोल्डर्स को प्रतिस्थापित / सम्मिलित सामग्री को चिह्नित करने के लिए।2.) एक सरणी या संरचना / मानचित्रण / शब्दकोश से अपने टेम्पलेट चर भरें
मुझे पता है कि आपने C # के बारे में पूछा था, लेकिन यदि आप किसी भी .Net भाषा का उपयोग करने के लिए तैयार हैं, तो मैं इस सटीक समस्या के लिए Visual Basic की अत्यधिक अनुशंसा करता हूं। विज़ुअल बेसिक में XML लिटरल्स नामक एक फीचर है जो आपको इस तरह कोड लिखने की अनुमति देगा।
यह आपको पुराने एएसपी शैली में अभिव्यक्ति छेद के साथ सीधे HTML लिखने की अनुमति देता है और आपके कोड को सुपर पठनीय बनाता है। दुर्भाग्य से यह सुविधा C # में नहीं है, लेकिन आप VB में एक एकल मॉड्यूल लिख सकते हैं और इसे अपने C # प्रोजेक्ट के संदर्भ में जोड़ सकते हैं।
विजुअल स्टूडियो में लेखन भी अधिकांश XML साहित्य और अभिव्यक्ति के लिए उचित इंडेंटेशन की अनुमति देता है। VS2010 में अभिव्यक्ति छेद के लिए इंडेंटेशन बेहतर है।
एक का उपयोग करें
XDocument
DOM को बनाने के लिए, फिर इसे a का उपयोग करके लिखेंXmlWriter
। यह आपको आश्चर्यजनक रूप से संक्षिप्त और पठनीय अंकन के साथ-साथ अच्छी तरह से स्वरूपित आउटपुट देगा।यह नमूना कार्यक्रम लें:
यह निम्न आउटपुट उत्पन्न करता है:
आप उपयोग कर सकते हैं
System.Xml.Linq
वस्तुएं। उन्हें पुराने से पूरी तरह से बदल दिया गया थाSystem.Xml
वे दिन जो खरोंच से XML का निर्माण करते हैं, वास्तव में कष्टप्रद होते हैं।मेरे अनुमान के अलावा, आप आसानी से ऐसा कुछ कर सकते हैं:
XmlWriter ऑब्जेक्ट का उपयोग करने के लिए सबसे सीधा तरीका है। यह वैध HTML का उत्पादन करने के लिए इस्तेमाल किया जा सकता है और आप के लिए सभी बुरा भागने दृश्यों का ख्याल रखेगा।
आप उपयोग कर सकते हैंT4 टेम्प्लेटअपने कोड से Html (या कोई भी) जेनरेट करने के लिए। यह देखो:http://msdn.microsoft.com/en-us/library/ee844259.aspx
यदि आप HTML डॉक्यूमेंट बनाना चाहते हैं, तो आप C # में XML डॉक्यूमेंट कैसे बनायेंगे, आप Microsoft के ओपन सोर्स लाइब्रेरी को आज़मा सकते हैं,Html चपलता पैक.
यह एक HtmlDocument ऑब्जेक्ट प्रदान करता है जिसमें बहुत समान API है
System.Xml.XmlDocument
कक्षा।आप वेब पृष्ठों के संदर्भ में अपने HTML को उत्पन्न करने के लिए ASP.NET का उपयोग कर सकते हैं।यहाँ एक लेख हैदिखाता है कि यह कैसे किया जा सकता है।
आप कुछ तीसरे पक्ष के ओपन-सोर्स लाइब्रेरीज़ का उपयोग कर सकते हैं ताकि मजबूत टाइप किए गए वैरिफाइड (X) HTML उत्पन्न होंCityLizard फ्रेमवर्कया तीव्र डोम।
अपडेट करेंउदाहरण के लिए
यह एक सामान्य समाधान नहीं है, हालाँकि, यदि आपके विद्यार्थियों को ईमेल टेम्प्लेट रखना या बनाए रखना है तो System.Web में एक अंतर्निहित वर्ग हैMailDefinition। यह वर्ग HTML ईमेल बनाने के लिए ASP.NET सदस्यता नियंत्रण द्वारा उपयोग किया जाता है।
ऊपर बताई गई चीजों की तरह ही 'स्ट्रिंग को प्रतिस्थापित' करता है, लेकिन यह सब आपके लिए एक MailMessage में पैक करता है।
यहाँ MSDN से एक उदाहरण दिया गया है:
ASP.net MVC में रेजर की शुरुआत के साथ, C # में HTML लिखने का सबसे अच्छा तरीका रेजर इंजन के साथ है।
साँचा:
एक पूर्ण नमूने के लिए, देखेंयहाँ
यदि आप इसका बहुत अधिक उपयोग करते हैं, तो आप इसके रेंडर विधि और अन्य विशेषताओं के साथ अपनी खुद की कक्षाएं लिख सकते हैं, ताकि आप इसे बहुत उपयोग कर सकें और फिर HTMLWriter या xmlwriter का भी उपयोग कर सकें। इस तर्क का उपयोग asp.net पृष्ठों में किया जाता है, आप webControl से इनहेरिट कर सकते हैं और ओवरराइड कर सकते हैंरेंडर विधि, यदि आप सर्वर-साइड नियंत्रण विकसित कर रहे हैं, तो बहुत अच्छा है।
यहएक अच्छा उदाहरण हो सकता है।
सादर
यह वास्तव में निर्भर करता है कि आप क्या करने जा रहे हैं, और विशेष रूप से, आपको वास्तव में किस प्रकार का प्रदर्शन करने की आवश्यकता है।
मैंने दृढ़ता से टाइप किए गए HTML विकास (पूर्ण नियंत्रण मॉडल, एएसपी.नेट वेब कंट्रोल या इसके समान) के लिए सराहनीय समाधान देखे हैं, जो केवल एक परियोजना में अद्भुत जटिलता जोड़ते हैं। अन्य स्थितियों में, यह एकदम सही है।
C # दुनिया में वरीयता के क्रम में,
मैंने इन वर्गों को लिखा, जिन्होंने मुझे अच्छी सेवा दी। यह सरल अभी तक व्यावहारिक है।
एचएसएचआरपी एक पुस्तकालय है जिसका उपयोग एचटीएमएल जैसी मार्कअप भाषा का आसानी से और तेजी से विश्लेषण करने के लिए किया जाता है। इंस्टॉल:
PM> Install-Package Obisoft.HSharp
और उत्पादन:
मैं एक ऐसी चीज़ की तलाश में था जो C # में डोम बनाने के लिए jquery जैसी दिखती थी (मुझे पार्स करने की आवश्यकता नहीं है)। दुर्भाग्य से एक हल्के समाधान खोजने में कोई भाग्य नहीं है इसलिए मैंने यह सरल वर्ग बनाया है जो System.Xml.Linq.XElement से विरासत में मिला है। मुख्य विशेषता यह है कि आप ऑपरेटर को श्रृंखलाबद्ध कर सकते हैं जैसे कि जावास्क्रिप्ट में jquery का उपयोग करते समय ताकि यह अधिक धाराप्रवाह हो। यह पूरी तरह से चित्रित नहीं है, लेकिन यह वही करता है जो मुझे चाहिए और यदि रुचि है तो मैं एक गिट शुरू कर सकता हूं।
नमूना:
उपरोक्त कोड से आउटपुट:
Leave a Reply