8
我有一個簡單的模型:如何像asp:Literal一樣使用Razor?
public class MyModel
{
public string Text{get;set;}
}
我有一個觀點,這使得爲MyModel的Text屬性:
<p>@Model.Text</p>
如何從喜歡的標籤文本渲染html標籤?例如,我有文本「<b>Text</b>
」。我想獲取標記P內粗體文字作爲結果:
文本
但剃刀渲染文本是:
<b>Text</b>
這是一個很好的解決方案,當你想偶爾渲染一些沒有HTML編碼的內容。當你知道你的模型的一個屬性總是HTML內容不應該被自動編碼時,你應該製作該屬性的IHtmlString類型。因此,如果您將文本更改爲IHtmlString而不是字符串,則可以鍵入@ Model.Text,Razor將正確輸出標籤。這樣,顯然某些內容是HTML,應該仔細清理以避免HTML注入攻擊。 – 2011-04-04 17:37:01
@anurse:哇,好評。我自己不知道。我將更新答案以添加此信息。 – paracycle 2011-04-05 08:07:18