2013-03-21 4 views
35

अपने मुख्य पृष्ठ पर, मैं कोड @{Html.RenderPartial("_Partial1.cshtml");} है, और मेरे आंशिक पर, मैं एक HTML स्ट्रिंग है:एएसपी.नेट एमवीसी में एचटीएमएल स्ट्रिंग कैसे प्रस्तुत करें?

@{ 
    // The string is actually dynamic, not static. This is here for simplicity 
    string abc="<div class=\"error\">abc</div>"; 
} 
@abc 

मैं कुछ सीएसएस त्रुटि शैलियों के साथ उत्पादन abc चाहते हैं, लेकिन मैं वास्तव में <div class="error">abc</div> मिला - निश्चित रूप से , वहां कोई शैलियों नहीं है। मैं इसे HTML स्रोत कोड के रूप में कैसे समझूं और स्ट्रिंग नहीं?

+1

http://stackoverflow.com/questions/4281424/asp-net-mvc-razor-output-html-string-non-escaped – adt

+0

'

abc
' के साथ क्या गलत है? – alex

उत्तर

92

आप इसके लिए Html.Raw() विधि का उपयोग कर सकते हैं।

+5

यह बिल्कुल अद्भुत था। युक्ति अगर आपके पास एक .html फ़ाइल है जिसे आप प्रस्तुत करना चाहते हैं तो इसके बजाय: @ Html.Raw (File.ReadAllText (Server.MapPath ()) – cgatian

+0

यह एक खतरनाक उत्तर है। Https://en.wikipedia.org/wiki/Cross-site_scripting – Unw0und

+0

कहें कि मैं रेज़र में एक वैश्विक चर को परिभाषित करना था, और फिर @ html.Raw (इस चर पर) का उपयोग करें क्योंकि मैं इसमें कुछ मार्कअप परिभाषित करना चाहता हूं और प्रस्तुत करना चाहता हूं देखें। क्या कोई तरीका है कि कोई यूआरएल से रेजर वेरिएबल में एक मूल्य निर्धारित कर सकता है? मैं बस यह सुनिश्चित करना चाहता हूं कि यह यूआरएल इंजेक्शन के माध्यम से एक्सएसएस के लिए कमजोर नहीं है .. धन्यवाद! – eaglei22

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