2012-01-15 27 views
0

我想將html標記作爲字符串插入數據庫並將其恢復。檢索後,我想要在Grid中綁定它。將html標記作爲字符串插入到數據庫並將其恢復到C#

的例子

String word = "<h1>This is Heading </h1> \n <h2>This is body</h2> \t This is after tab";

之後我綁定到網格應該

This is Heading(in a big font size)

This is body(in small font) - (tab space) This after tab

但是這種方式是行不通的。它顯示 <h1>This is Heading </h1> \n <h2>This is body</h2> \t This is after tab 單詞而不是應用真實的HTML行爲。我試用'\'特殊字符去除,但它保持相同的結果。

請幫幫我。

+0

幫助你什麼?你有什麼問題? – Guffa 2012-01-15 04:25:56

+0

抱歉,錯誤。並編輯原件。 :) – devan 2012-01-15 04:40:05

回答

2

您正在使用哪個控件?他們中的大多數都會像你一樣逃避html,爲了讓它按照原樣寫入,你必須設置一個屬性。

如果您使用的是GridView,那麼您可以將BoundColumn上的HtmlEncode設置爲false。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.htmlencode.aspx

如果您使用的AutoGenerateColumns,請參閱本SO螺紋:Prevent HTML encoding in auto-generated GridView columns

+0

是的,它工作正常。 TX – devan 2012-01-15 06:38:40

0

保存到數據庫是沒有問題的,你可以將字符串直接保存到數據庫,但在UI顯示時,必須使用HttpUyility.HtmlEncode(),否則它會邀請Javascript黑客。

但是,如果您要從WebPage輸入數據,請確保輸入驗證已關閉否則您將得到XSS腳本攻擊錯誤。

0

你可以在文字控制中綁定你的文本,它將代表實際的HTML格式文本。 like:

ltrlMsg.Text="<div class=\"Message Success\"> Your Message has been sent successfully! </div>" 

或者你也可以在你的網格中綁定。

相關問題