82 votes

Afficher le html codé avec razor

Je stocke le 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 ?

157voto

Amitabh Points 14882

Essayez ça :

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

49voto

tvanfosson Points 268301

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

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

9voto

msoliman Points 732

C'est assez simple :

HttpUtility.HtmlDecode(Model.Content)

Une autre solution, vous pouvez aussi renvoyer un HTMLString, Razor sortira le formatage correct :

dans la vue elle-même :

@Html.GetSomeHtml()

dans le contrôleur :

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

8voto

Bellash Points 1330

Vous pouvez aussi simplement utiliser l'option HtmlString classe

    @(new HtmlString(Model.Content))

7voto

Bobby Points 1302

Cela va fonctionner

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X