Comment afficher un viewbag en html?
OK, tout à fait nouveau pour ASP.Net MVC, donc je suis désolé si c'est une question idiote, mais comment faire pour montrer les valeurs D'un ViewBag comme HTML. Par exemple, si ViewBag.SomeMessage contient le texte suivant:
<h3>Test</h3><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>TEST</p>
Comment pourrais-je faire pour que la page soit rendue comme HTML normal? Ou y a-t-il un moyen beaucoup plus simple d'y arriver que je ne vois pas?
Cheers!
5 réponses
tout le monde est correct dans l'utilisation de @Html.Raw()
mais je tiens à souligner d'être prudent avec cela, car il peut rendre votre site sensible aux vulnérabilités XSS.
je voudrais combiner l' @Html.Raw(ViewBag.SomeMessage)
Microsoft Anti-XSS Library assurez-vous de ne pas introduire des vulnérabilités.
Edit:
L'avantage de la bibliothèque Anti-XSS (si vous ne l'avez pas regardée) est qu'elle a une liste blanche de markups approuvés (comme <b>
, <h3>
, etc.. de sorte que les approuvé les majorations seront non codée.
Edit2: Voici un exemple de la façon de faire.
je pense que vous pouvez faire quelque chose comme ceci:
@Html.Raw(ViewBag.SomeMessage)
@Html.Raw(ViewBag.SomeHtmlProperty)
ceci étant dit, Voici mon avis de non-responsabilité: N'utilisez pas de viseur. Utilisez des vues et des modèles de vue fortement dactylographiés. ViewBag/ViewData est comme le cancer pour une ASP.NET application MVC.
mettre des données dans ViewBag comme une chaîne de caractères codée HTML qui ne devrait pas être codée à nouveau.
ViewBag.myBag = MvcHtmlString.Create(myCode ?? string.Empty);
puis utilisez
@ViewBag.myBag
documentation pour MvcHtmlString.