2017-06-14 26 views
0

所以,我有一個像ASP.Net MVC 5網站的wordpress,我可以在那裏爲我的客戶創建網站。現在客戶的一個網站需要一個文本框來添加一個html內容。所以,我爲該文本框添加了[AllowHTML],所以我能夠將文本框內容成功保存到數據庫。現在我的問題是如何在前端渲染。我的意思是我有一個模型財產如何呈現HTML內容來自模型

public string htmlcontent {get;set;}

,我從數據庫中獲取價值是

<p>abc</p>

現在什麼是在我的cshtml文件中呈現它的最佳方式。如果我這樣做

@Model.htmlcontent

我的輸出僅僅是作爲<p>abc</p>明文但我想DOM來了解HTML內容和屬性,並相應地呈現它。

+0

如果你讓每個人都可以進入,不僅HTML,也javascipt的,然後每個用戶的機器上執行。請熟悉XSS(跨站點腳本):https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) –

+0

只有我有權訪問設置頁面作爲管理員。所以基本上只有我可以登錄到設置頁面並根據客戶需求進行更改。 – Unbreakable

+0

但我會閱讀文章。謝謝。 :) – Unbreakable

回答

2

你需要告訴剃刀引擎不是逃避使用Html.Raw您的字符串:

@Html.Raw(Model.htmlcontent) 
+0

你可以把一行解釋爲什麼'原始'工作,但普通渲染瓦特/原'不起作用。 – Unbreakable

+1

默認情況下,所有通過剃鬚刀輸出的字符串都會被轉義/編碼,例如'>'變成'>'。通過使用'Html.Raw',您告訴剃鬚刀引擎不要在輸出中轉義任何字符,將其「原始」發送給瀏覽器。 – Polynomial