我使用下面的代码使文本输出在<textarea>
HTML元素中输入的换行符。
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
有没有更好的方法呢?
发布于 2013-01-11 10:02:00
还有一个更好/更棒的解决方案,它采用了CSS white-space property
使用它,您可以避免Cross-site scripting (XSS)漏洞...
<p style="white-space: pre-line">@Model.Message</p>
与ASP.NET MVC剃刀引擎一起工作就像一个护身符。
发布于 2011-03-12 02:17:22
您的代码很容易受到XSS攻击,因为它不会对文本进行HTML编码。我会向你推荐以下几点:
var result = string.Join(
"<br/>",
Model.Post.Description
.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
.Select(x => HttpUtility.HtmlEncode(x))
);
return MvcHtmlString.Create(result);
然后在您的视图中,您可以安全地:
@Html.SomeHelper()
发布于 2011-03-12 02:13:20
也许您可以输出标记内的文本。
https://stackoverflow.com/questions/5276688
复制相似问题