Asp.net

在 ASP.NET Razor 中格式化字元串

  • January 17, 2011

我目前正在用 ASP.NET 編寫一個小型模板系統,以允許使用者添加內容。例如,使用者可以輸入字元串(變數類型為字元串)。

topHeader[x] = "They think it's all over. It is now!";

但是,需要進行的一項更改是能夠在此內容中添加一些基本的 HTML 標記,因此可以執行以下操作

topHeader[x] = "They think it's all over. <strong>It is now!</strong>";

或者

topHeader[x] = "They think it's all over. <a title="Football News" href="URL">It is now!</a>";

如果您現在將這些內容添加到字元串中,它們不會被格式化為 HTML,但我想以某種方式轉義它們以便它們可以。當然,我已經在 Internet 上尋找答案,但由於 Razor 相當新,所以沒有太多可以幫助我的方法。

任何人都知道如何做到這一點?

您需要創建一個包含IHtmlString您的 HTML 原始碼的實現。

Razor 計劃有一個輔助方法來為您執行此操作,但是,AFAIK,它還沒有,所以我相信您需要創建自己的類來實現介面並從該GetHtmlString()方法返回您的 HTML。

編輯:您可以使用該HtmlString課程。

您可以將topHeader字典更改為保存IHtmlStrings 而不是Strings,或者您可以保留程式碼原樣,但將其包裝在HtmlStringRazor 視圖中:

<tag>@new HtmlString(topHeader[x])</tag>

確保正確轉義任何非 HTML 特殊字元。

引用自:https://stackoverflow.com/questions/3341328