J’utilise ce qui suit pour que le texte produise les sauts de ligne entrés dans un élément HTML .
MvcHtmlSsortingng.Create(Model.Post.Description.Replace(Environment.NewLine, "
"))
Y a-t-il une meilleure façon de faire cela?
Votre code est vulnérable aux attaques XSS car il ne code pas le texte en HTML. Je vous recommanderais ce qui suit:
var result = ssortingng.Join( "
", Model.Post.Description .Split(new[] { Environment.NewLine }, SsortingngSplitOptions.None) .Select(x => HttpUtility.HtmlEncode(x)) ); return MvcHtmlSsortingng.Create(result);
et à votre avis, vous pouvez en toute sécurité:
@Html.SomeHelper()
Il existe une solution encore meilleure / géniale qui utilise la propriété d’espace blanc CSS :
En utilisant cela, vous évitez les vulnérabilités XSS ( Cross-site Scripting ) …
@Model.Message
Fonctionne comme un charme avec le moteur ASP.NET MVC Razor.
Peut-être que vous pouvez sortir le texte dans une balise
.
Cela fonctionne pour moi.
" + Model.Text + "
")
ssortingng Model.Text ayant la balise
à l’intérieur.
Voici ma solution.
@MvcHtmlSsortingng.Create(Regex.Replace(Html.Encode(Model.Address), Environment.NewLine, "
", RegexOptions.Multiline))
et bien sur, vous devrez append ce qui suit pour utiliser Regex.
@using System.Text.RegularExpressions
J’espère que c’est utile pour quelqu’un.