2010-09-26 16 views

उत्तर

8

यह मूल्य

अधिक जानकारी के लिए ScottGu's blog देखें पर एक HtmlEncode कहता है।

+0

मदद सभी के लिए धन्यवाद –

+0

धन्यवाद। कभी-कभी मैं एक प्रश्न में आया था लेकिन पूछने के लिए कभी नहीं मिला ... –

2

<%: %> को प्राथमिकता दी जाएगी, क्योंकि यह स्वचालित रूप से HTML मूल्य एन्कोड करता, लेकिन यह केवल .NET 4.

4

में काम करता है वे ही नहीं हैं:

<%=%> is the same as `Response.Write` 
<%:%> adds `Server.HtmlEncode` to `Response.Write` 

इसलिए, <%:%> है पसंद किया गया (के बाद से जोड़ा .NET 4.0), क्योंकि यह स्ट्रिंग को आउटपुट करने से पहले आउटपुट एन्कोडिंग के सुरक्षा उपाय को जोड़ता है।

यदि आप .NET 3.5 या इससे पहले का उपयोग कर रहे हैं, तो सर्वोत्तम अभ्यास <%=Server.HtmlEncode(val)%> का उपयोग करना है।

+0

सर्वर हैं। HTML एन्कोड और एचटीएमएल। एक ही चीज़ एन्कोड करें ?? –

+0

@ प्रवीण प्रसाद - मेरा मानना ​​है कि वे एक ही काम कर रहे हैं, लेकिन व्यवहार में थोड़ा अलग (समस्याओं का कारण बनने के लिए पर्याप्त नहीं है, लेकिन अगर स्मृति सेवा करता है तो एक दूसरे की तुलना में कठोर है)। – Oded

2
<%: someString %> 

है

तरह
<%= HttpUtility.HtmlEncode(someString) %> 
2

आप का उपयोग करें "<%:" जब आप स्ट्रिंग को साफ़ करने में की जरूरत है (यानी कुछ है कि एक उपयोगकर्ता द्वारा inputed किया गया था और संभावित रूप से दुर्भावनापूर्ण हो सकता से)

मूल रूप से < & = बस एचटीएमएल और <% के रूप में स्ट्रिंग के रूप में लिखता है: <% = एचटीएमएल लिखने जैसा ही है। एन्कोड ("कुछ")%>

+0

<%: %> आम तौर पर बेहतर है। रेजर व्यू इंजन में, माइक्रोसॉफ्ट ने इसे बनाया ताकि @के बराबर हो। और समकक्ष <%= %> व्यवहार प्राप्त करने के लिए आपको @ Html.Raw (मान) का उपयोग करने की आवश्यकता है। –