エンコードされたHTMLをデータベースに保存します。
私がそれを正しく表示できる唯一の方法は:
<div class='content'>
@MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
それは醜いです。これを行うより良い方法はありますか?
これを試して:
<div class='content'>
@Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
Html.Raw()
を使用します。 Phil Haackは http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx にニース構文ガイドを投稿しました。
<div class='content'>
@Html.Raw( Model.Content )
</div>
これは非常に簡単です。
HttpUtility.HtmlDecode(Model.Content)
別の解決策として、HTMLStringを返すこともできます。Razorは正しいフォーマットを出力します。
ビュー自体で:
@Html.GetSomeHtml()
コントローラー内:
public static HtmlString GetSomeHtml()
{
var Data = "abc<br/>123";
return new HtmlString(Data);
}
単にHtmlString
クラスを使用することもできます
@(new HtmlString(Model.Content))
エンコードされたHTMLをデータベースに保存します。
私見では、HTMLエンコードされたデータをデータベースに保存しないでください。プレーンテキスト(エンコードされていない)に保存し、次のようにデータを表示するだけで、HTMLは自動的にエンコードされます。
<div class='content'>
@Model.Content
</div>