Я храню закодированный HTML в базе данных.
Единственный способ правильно отобразить это:
<div class='content'>
@MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
Это ужасно. Есть ли лучший способ сделать это?
Я храню закодированный HTML в базе данных.
Единственный способ правильно отобразить это:
<div class='content'>
@MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
Это ужасно. Есть ли лучший способ сделать это?
Попробуй это:
<div class='content'>
@Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
Используйте
Html.Raw()
. Фил Хаак опубликовал хорошее руководство по синтаксису на http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx .<div class='content'> @Html.Raw( Model.Content ) </div>
источник
это довольно просто:
Другое решение, вы также можете вернуть HTMLString, Razor выведет правильное форматирование:
в самом представлении:
в контроллере:
public static HtmlString GetSomeHtml() { var Data = "abc<br/>123"; return new HtmlString(Data); }
источник
Вы также можете просто использовать
HtmlString
класс@(new HtmlString(Model.Content))
источник
Имхо, вы не должны хранить свои данные в html-кодировке в базе данных. Просто сохраните в виде обычного текста (не закодированного) и просто отобразите ваши данные вот так, и ваш html будет автоматически закодирован:
<div class='content'> @Model.Content </div>
источник
У меня есть еще один случай отображения обратной косой черты
\
с помощью Razor и Java Script.Мой
@Model.AreaName
выглядит как Name1 \ Name2 \ Name3, поэтому, когда я показываю его, все обратные косые черты исчезают, и я вижу Name1Name2Name3Я нашел решение, чтобы исправить это:
var areafullName = JSON.parse("@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.AreaName)))");
Не забудьте добавить
@using Newtonsoft.Json
вверхуchtml
страницы.источник