web-dev-qa-db-fra.com

Afficher le code HTML codé avec le rasoir

Je stocke le code HTML codé dans la base de données.

La seule façon de l'afficher correctement est:

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

C'est moche. Y a-t-il une meilleure façon de faire cela?

74
jani

Essaye ça:

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

Utilisez Html.Raw(). Phil Haack a publié un guide de la syntaxe Nice à l'adresse suivante: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx .

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

c'est assez simple:

HttpUtility.HtmlDecode(Model.Content)

Une autre solution, vous pouvez également renvoyer un HTMLString, Razor affichera le formatage correct:

dans la vue même:

@Html.GetSomeHtml()

dans le contrôleur:

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

Vous pouvez aussi simplement utiliser la classe HtmlString

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

Je stocke le code HTML codé dans la base de données.

À mon humble avis, vous ne devez pas stocker vos données codées HTML dans la base de données. Stockez simplement en texte brut (non encodé) et affichez simplement vos données comme ceci et votre code HTML sera automatiquement encodé:

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