I'm using the following to make the text output the line breaks entered in a <textarea>
HTML element.
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
Is there a nicer way to do this?
There's an even better/awesome solution that employs CSS white-space property:
Using this you avoid Cross-site scripting (XSS) vulnerabilities...
<p style="white-space: pre-line">@Model.Message</p>
Works like a charm with ASP.NET MVC Razor engine.
Your code is vulnerable to XSS attacks as it doesn't HTML encode the text. I would recommend you the following:
var result = string.Join( "<br/>", Model.Post.Description .Split(new[] { Environment.NewLine }, StringSplitOptions.None) .Select(x => HttpUtility.HtmlEncode(x)) ); return MvcHtmlString.Create(result);
and then in your view you can safely:
@Html.SomeHelper()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With