मैं सी # का उपयोग कर एएसपीनेट साइट (वास्तव में, एक डॉटनेटनेट मॉड्यूल) लिख रहा हूं। कोड-बैक से, मैं <script>
टैग बनाने की कोशिश कर रहा हूं जहां मैंने एक आवश्यक जेएस वैरिएबल सेट किया है, फिर इसे एचएमटीएल <head>
पर संलग्न करें। जेएस var छवि फ़ाइलों के लिए सापेक्ष यूआरएल की एक (शाब्दिक) सरणी है। चूंकि सरणी में तार होते हैं, प्रत्येक आइटम उद्धरण में संलग्न होना चाहिए।HTML-encoding सामग्री से HtmlGenericControl को कैसे रोकें?
समस्या है, <script>
और </script>
के बीच स्ट्रिंग स्वचालित रूप से, कहीं HtmlEncoded की जा रही है इसलिए प्रत्येक सरणी आइटम के आसपास उद्धरण "
के साथ प्रतिस्थापित किया जा रहा है। ऐसा लगता है जब HtmlGenericControl
प्रस्तुत किया जाता है। क्या DotNetNuke अपराधी हो सकता है? क्या कोई कामकाज सुझा सकता है?
मेरे वर्तमान कोड (मेरे नियंत्रण में Page_Load
हैंडलर से चल): नोड, नहीं innerText संपत्ति के InnerHtml संपत्ति का उपयोग कर पर
HtmlGenericControl PreviewDataScriptTag = new HtmlGenericControl("script");
PreviewDataScriptTag.Attributes.Add("type", "text/javascript");
StringBuilder PreviewDataScriptCode = new StringBuilder();
PreviewDataScriptCode.Append("var preview_imgs = [");
string pathPrefix = @"""";
string pathSuffix = @""",";
foreach (string path in this.DocPreviewImages)
{
PreviewDataScriptCode.Append(pathPrefix + PreviewUrlBase + Path.GetFileName(path) + pathSuffix);
}
// Remove last comma from js code
PreviewDataScriptCode.Remove(PreviewDataScriptCode.Length-1, 1);
PreviewDataScriptCode.Append("];");
PreviewDataScriptTag.InnerText = PreviewDataScriptCode.ToString();
Page.Header.Controls.Add(PreviewDataScriptTag);
मैं आपके चर के लिए निम्न-चरण वाले नामों का उपयोग करने की अनुशंसा करता हूं। यह पढ़ने के लिए भ्रमित है। – Amy
टिप के लिए धन्यवाद। मैं वास्तव में .NET के लिए उपयोग नहीं किया जाता, और महसूस करने के बाद सबकुछ के लिए ऊपरी-केस का उपयोग करना शुरू कर दिया। नेट डेवलपर्स ऊपरी-मामले * ऑब्जेक्ट प्रॉपर्टी नाम * में होते हैं। मुझे लगता है कि यह सुधार पर एक मामला है! – bfavaretto