J'ai un HTML sécurisé/sanitaire enregistré dans une table de la base de données.
Comment puis-je faire écrire ce contenu HTML dans une vue Razor ?
Il échappe toujours à des personnages comme <
et les esperluettes à &
.
J'ai un HTML sécurisé/sanitaire enregistré dans une table de la base de données.
Comment puis-je faire écrire ce contenu HTML dans une vue Razor ?
Il échappe toujours à des personnages comme <
et les esperluettes à &
.
Supposons que votre contenu se trouve dans une chaîne nommée mystring
...
Vous pouvez utiliser :
@Html.Raw(mystring)
Vous pouvez également convertir votre chaîne en HtmlString
ou tout autre type qui implémente IHtmlString
dans le modèle ou directement en ligne et utiliser les régulières @
:
@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString
Merci pour cette réponse. Elle m'a aidé à terminer une petite tâche que j'étais en train d'apprendre :) Cependant, j'utilise la dernière version de MVC3 et jusqu'à présent, pas de Html.Raw :(
Parfois, il peut être délicat d'utiliser du html brut. Principalement à cause de la vulnérabilité XSS. Si c'est un problème, mais que vous voulez quand même utiliser du html brut, vous pouvez coder les parties qui font peur.
@Html.Raw("(<b>" + Html.Encode("<script>console.log('insert')</script>" + "Hello") + "</b>)")
Résultats en
(<b><script>console.log('insert')</script>Hello</b>)
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.
78 votes
Pour épargner aux gens la longue histoire de la discussion ci-dessous -
@Html.Raw()
0 votes
Pour éviter que des personnes comme moi essaient de faire cela avec des types anonymes dans des vues typées dynamiquement, où cela ne fonctionnera pas - cf. cette réponse à ma question plus spécifique. Bien que l'utilisation de cette approche avec une vue fortement typée soit toujours préférable si votre situation le permet.