web-dev-qa-db-ja.com

エンコードされたHTMLをカミソリで表示する

エンコードされたHTMLをデータベースに保存します。

私がそれを正しく表示できる唯一の方法は:

<div class='content'>    
   @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>

それは醜いです。これを行うより良い方法はありますか?

74
jani

これを試して:

<div class='content'>    
   @Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
149
Amitabh

Html.Raw()を使用します。 Phil Haackは http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx にニース構文ガイドを投稿しました。

<div class='content'>
    @Html.Raw( Model.Content )
</div>
46
tvanfosson

これは非常に簡単です。

HttpUtility.HtmlDecode(Model.Content)

別の解決策として、HTMLStringを返すこともできます。Razorは正しいフォーマットを出力します。

ビュー自体で:

@Html.GetSomeHtml()

コントローラー内:

public static HtmlString GetSomeHtml()
{
    var Data = "abc<br/>123";
    return new HtmlString(Data);
}
8

単にHtmlStringクラスを使用することもできます

    @(new HtmlString(Model.Content))
7
Bellash

エンコードされたHTMLをデータベースに保存します。

私見では、HTMLエンコードされたデータをデータベースに保存しないでください。プレーンテキスト(エンコードされていない)に保存し、次のようにデータを表示するだけで、HTMLは自動的にエンコードされます。

<div class='content'>
    @Model.Content
</div>
1
Mcanic