2010-08-10 93 views
3

有沒有辦法禁止輸出HTML中的asp:Literal禁止asp:從輸出HTML中輸入文字

如果我輸入文字<b>Hello world</b>我想顯示它就像那樣,而不是粗體。

如果可能我不想擴展它,因爲我將不得不改變整個項目。

+0

*更改整個項目*是一個簡單的搜索和替換VS. – 2010-08-10 15:10:41

+1

'asp:Literal'根據定義輸出它給出的文字文本。是否有一個原因,你不能使用'asp:Label',它會自動轉義您在其中提供的文本中的HTML? – StriplingWarrior 2010-08-10 15:17:08

+0

'Hello World」runat =「server」/>Hello World」runat =「server」/>'這裏唯一的區別是Label生成一個'span'。它並沒有逃脫HTML – BrunoLM 2010-08-10 17:00:15

回答

0

我認爲你需要這一個:HttpUtility.HtmlEncode

它將替換<&lt;等,可以被安全地發送到客戶端。

+0

這是最好的答案,如果你需要在不止幾個地方使用它,你最好的選擇就是擴展文字控制來支持它。預先做一點工作,使每個詞的可讀性更高,並且以後可以更輕鬆地工作。 – Kendrick 2010-08-10 15:16:10

+1

其實,'HttpUtility.HtmlEncode'會是正確的使用方法。 – 2010-08-10 15:23:55

1

一種方式是.... 創建從ASP.net字面控制 派生的自定義LiteralControl和重寫Render(HtmlTextWriter的作家)方法以除去任何標籤。

0

我遲到了,但答案是將Literal.Mode設置爲Encode

像這樣:

<asp:Literal runat="server" ID="myLiteralControl" Mode="Encode" /> 

不幸的是,你必須改變你的整個項目,無論你是擴展文字控。

這裏是Literal.Mode documentation