2012-09-24 150 views
2

我是新來的C#,我想顯示一個HTML字符串(保存在從CKEDITOR數據庫)頁面爲html顯示HTML字符串

<div class="descriptionText"> 
<% 
    Response.Write(dynamicHtml); 
%> 
</div> 

它顯示爲:

<p> test &nbsp;ht<u>ml test </u>html<strong> test html&nbsp;</strong></p> 

但是應該是:

測試  HTML測試HTML 測試HTML  

注:請提出解決方案,其中我能做的Response.Write字符串

+0

它適合我呈現。你能提供更多信息嗎?你使用的是什麼版本的asp.net?你確定動態Html的價值不是由以前的過程編碼的HTML嗎? – Aheho

+0

您的輸出是html編碼的。 Response.Write本身不應該這樣做。你提到你使用sitecore。我認爲這可能會對編碼負責任? – magnattic

回答

5

試試這個:

<div class="descriptionText"> 
<asp:Literal runat="server" id="lit"/> 
</div> 

在你的代碼隱藏,你的HTML綁定到文字:

lit.Text = dynamicHtml; 

我假設你通過一些查詢從數據庫中獲取HTML文本,你基本上必須將結果綁定到文字上。

UPDATE: 這似乎是爲我藏漢工作:

在你的ASPX頁面:

protected string dynamicHtml { get; set; } 

頁面加載:

<%= dynamicHtml %> 
在後面的代碼

dynamicHtml = "your HTML"; 
+0

抱歉忘記提及:請不要包含任何工具服務器端工具。我需要它使用responce.write .... :( – Champ

+0

爲什麼這樣?有什麼特別的原因嗎? – Thousand

+0

是的。我正在使用site-core並且已經面臨一個問題http:// stackoverflow。com/questions/12404924/asppanel-runat-server-not-available-in-c-sharp-cs-code-page仍然沒有解決方案,因爲我不能包含任何服務器端控件 – Champ

3

你可能需要這個scriplet,瞭解更多關於的Response.Write here

<%= Response.Write(dynamicHtml); %> 

如果有可能讓你有後面的代碼然後進行股利服務器訪問通過添加runat="server"併爲它指定一些id

的Html

<div id="divMessage" class="descriptionText" runat="server"> 

</div> 

代碼隱藏

divMessage.InnerHTML = dynamicHtml