2011-09-02 7 views
24

ठीक है, एएसपी.NET एमवीसी के लिए काफी नया है, इसलिए मुझे खेद है कि यह एक मूर्ख सवाल है, लेकिन मैं व्यूबैग के मान HTML के रूप में कैसे दिखा सकता हूं।मैं व्यूबैग को HTML के रूप में कैसे दिखा सकता हूं?

<h3>Test</h3><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>TEST</p>

कैसे मैं वास्तव में पेज प्रस्तुत करना है कि सामान्य HTML के रूप में होने के बारे में जाना होगा: उदाहरण के लिए, यदि ViewBag.SomeMessage निम्नलिखित पाठ होता है? या क्या यह हासिल करने का एक आसान तरीका है कि मैं पूरी तरह से याद कर रहा हूं?

चीयर्स!

उत्तर

47

हर कोई @Html.Raw() के उपयोग में सही है, लेकिन मैं इसके बारे में सावधान रहना चाहता हूं, क्योंकि यह आपकी साइट को एक्सएसएस भेद्यता के लिए अतिसंवेदनशील बना सकता है।

@Html.Raw(ViewBag.SomeMessage)Microsoft's Anti-XSS Library के साथ यह सुनिश्चित करने के लिए कि आप इससे किसी भी भेद्यता को पेश नहीं करते हैं, मैं @Html.Raw(ViewBag.SomeMessage) को गठबंधन करूंगा।

संपादित करें: विरोधी XSS पुस्तकालय का लाभ (यदि आप इसे देखा नहीं किया है) यह अनुमोदित मार्कअप की एक श्वेत सूची है (आदि जैसे <b>, <h3>, ..) इतना है कि केवल अनुमोदित मार्कअप अन-एन्कोडेड होंगे।

संपादन 2: Here's an example यह कैसे किया जाता है।

+0

+1 यह भी अच्छी सलाह है। – Tejs

+0

एक्सएसएस क्या है और एंटी-एक्सएसएस का उपयोग करके लापरवाह आत्म-प्रचार, साथ ही अन्य हैक प्रूफिंग सामग्री: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV333 –

12

आप Raw विधि का प्रयोग करेंगे:

@Html.Raw(ViewBag.SomeMessage) 
+0

अरे आप! हाहाहा – slandau

+2

पक्ष लौट रहा है :) हाहा – slandau

7

मुझे लगता है कि आप कुछ इस तरह कर सकते हैं:

@Html.Raw(ViewBag.SomeMessage) 
+0

+1 - NEMESIS! = डी मैं बस मैकग्रा को जल्दी से खींचता हूं मुझे लगता है = डी – Tejs

6
@Html.Raw(ViewBag.SomeHtmlProperty) 

यह कहा जा रहा है, यहाँ मेरी अस्वीकरण है: ViewBag प्रयोग न करें । दृढ़ता से टाइप किए गए विचारों का उपयोग करें और मॉडल देखें। व्यूबैग/व्यूडाटा एएसपी.नेट एमवीसी अनुप्रयोग के लिए कैंसर की तरह है।

1

एक HTML-एन्कोडेड स्ट्रिंग के रूप में व्यूबैग को डेटा डालें जिसे फिर से एन्कोड नहीं किया जाना चाहिए।

ViewBag.myBag = MvcHtmlString.Create(myCode ?? string.Empty); 

तो

@ViewBag.myBag 

documentation MvcHtmlString के लिए इस्तेमाल करते हैं।