我聽(tīng)說(shuō)不建議在 Razor 視圖中使用 HTML.Raw,如果是這樣,我有問(wèn)題。我正在使用實(shí)體框架與我的 SQL 數(shù)據(jù)庫(kù)進(jìn)行交互。我也使用 SummerNote 作為前端的編輯器?,F(xiàn)在我的視圖代碼在 @{} 塊中,我相信它做了一些編碼/解碼。場(chǎng)景是用戶在 SummerNote 編輯器中輸入一些文本并應(yīng)用一些格式(例如將單詞加粗)并單擊保存。這將生成一個(gè) HTML 字符串并將其傳遞給我的控制器:<p>Test <b>string </b>with formatting.</p>在控制器中,我使用 HTML encode 進(jìn)行編碼:customerData.Description = HttpUtility.HtmlEncode(summerNoteFieldData);然后將其發(fā)送到DB。它在 DB 中如下所示:<p>Test <b>string </b>with formatting.</p>然后在呈現(xiàn)它時(shí)的視圖中,我這樣做:<div class="summernote">@Html.Raw(@HttpUtility.HtmlDecode(@Model))</div>因此,如果我刪除 Html.Raw,那么我將看到上面的 HTML 字符串而不是格式化的字符串。這是安全和正確的方法嗎?可以改進(jìn)嗎?感謝您的任何幫助。
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
您應(yīng)該在視圖中打印時(shí)進(jìn)行 HTML 編碼(使用@Model
)。
不要在其他任何地方編碼或解碼;不要在您的數(shù)據(jù)庫(kù)中存儲(chǔ)編碼內(nèi)容。
- 1 回答
- 0 關(guān)注
- 334 瀏覽
添加回答
舉報(bào)
0/150
提交
取消