2009-12-04 9 views
28

इन दो नियंत्रणों का उचित उपयोग क्या है? समय-समय पर मैं कोड के पीछे एचटीएमएल का निर्माण करता हूं। कभी-कभी मैं सफेद जगह का उत्पादन करना चाहता हूं और मैं ऐसा कुछ कर रहा हूं।लिटल बनाम लिटल कंट्रोल का उपयोग कब करें?

const string twoSpaces = "  "; 
p.Controls.Add(new Literal { Text = twoSpaces }); 

या

const string twoSpaces = "  "; 
p.Controls.Add(new LiteralControl { Text = twoSpaces }); 

मेरा प्रश्न है, इस लिए इन नियंत्रणों का एक उपयुक्त इस्तेमाल होता है? क्या मुझे इस तरह व्हाइटस्पेस जोड़ना चाहिए? मैं दूसरे पर एक का उपयोग कब करूं?

मुझे एहसास है कि मैं शायद सीएसएस के साथ कुछ कर सकता हूं, लेकिन मैं वास्तव में जानना चाहता हूं कि इन दो नियंत्रणों के उद्देश्य क्या हैं, और क्या इस फैशन में उनका उपयोग करने में स्वाभाविक रूप से गलत कुछ भी है।

उत्तर

34

शाब्दिक व्यूस्टेट का उपयोग करता है और पोस्टबैक में इसके गुणों के लिए कोई भी अपडेट याद रखेगा। लिटलकंट्रोल में प्रत्येक पोस्टबैक पर इसकी गुण निर्धारित होनी चाहिए।

इसके अलावा, साहित्य का उपयोग करते समय बहुत सावधान रहें। यदि आप उपयोगकर्ता इनपुट को एक शाब्दिक टैग में प्रस्तुत करने की अनुमति देते हैं, तो आपने एक्सएसएस हमले को खोला है।

+3

+1। कुछ सुरक्षा HttpUtility.HtmlEncode() या सुरक्षित-अभी-थोड़ी धीमी माइक्रोसॉफ्ट की एंटी-एक्सएसएस लाइब्रेरी से उपलब्ध है - लेकिन क्रिस ने कहा कि उपयोगकर्ता इनपुट के बारे में बहुत सावधान रहें जो लिटल/लिटल कंट्रोल में प्रस्तुत किए जा सकें। – Broam

9

क्रिस पिटमैन ने इसका सही उत्तर दिया है, लेकिन मैं बस दोनों के बारे में कुछ और तथ्य जोड़ना चाहता हूं।

शाब्दिक एक नियंत्रण है जिसे एक एएसपीएक्स पेज के साथ-साथ कोड के पीछे भी जोड़ा जा सकता है।

asp:Literal Text="text" runat="server"

लेकिन LiteralControl aspx पृष्ठ पर नहीं जोड़ा जा सकता है, लेकिन केवल पीछे कोड के लिए। इसलिए यही कारण है कि LiteralControl में पृष्ठ क्लास से संबंधित व्यूस्टेट नहीं है।

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