Я слышал, что использование HTML.Raw в представлениях Razor не рекомендуется, и если это так, у меня есть проблема.
Я использую Entity Framework для взаимодействия с моей базой данных SQL. Также я использую SummerNote в качестве редактора для внешнего интерфейса.
Теперь мой код представления находится в блоке @ {}, который, как я считаю, выполняет некоторое кодирование / декодирование.
Сценарий состоит в том, что пользователь вводит некоторый текст в редакторе SummerNote, применяет некоторое форматирование (например, выделяет слово жирным шрифтом) и нажимает кнопку сохранения. Это сгенерирует строку HTML и передаст ее моему контроллеру:
<p>Test <b>string </b>with formatting.</p>
В контроллере я использую кодирование HTML для кодирования:
customerData.Description = HttpUtility.HtmlEncode(summerNoteFieldData);
А затем отправьте его в БД. В БД это выглядит так:
<p>Test <b>string </b>with formatting.</p>
Тогда в представлении, когда я это представляю, я делаю:
<div class="summernote">@Html.Raw(@HttpUtility.HtmlDecode(@Model))</div>
Так что, если я удалю Html.Raw, то увижу приведенную выше строку HTML, а не отформатированную.
Это безопасный и правильный путь? Можно ли это улучшить?
Спасибо за любую помощь.