显示行打破asp.net mvc razor
我正在使用以下内容使文本输出在 HTML元素中输入换行符。
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "
"))
有没有更好的方法来做到这一点?
您的代码容易受到XSS攻击,因为它不会对文本进行HTML编码。 我会推荐你以下内容:
var result = string.Join( "
", Model.Post.Description .Split(new[] { Environment.NewLine }, StringSplitOptions.None) .Select(x => HttpUtility.HtmlEncode(x)) ); return MvcHtmlString.Create(result);
然后在您的视图中,您可以安全地:
@Html.SomeHelper()
有一个更好/更棒的解决方案,采用CSS白色空间属性 :
使用此function可以避免跨站点脚本 (XSS)漏洞……
@Model.Message
像ASP.NET MVC Razor引擎的魅力一样。
也许你可以在
标签内输出文字。
它对我有用。
" + Model.Text + "
")
字符串Model.Text里面有
标签。
这是我的解决方案。
@MvcHtmlString.Create(Regex.Replace(Html.Encode(Model.Address), Environment.NewLine, "
", RegexOptions.Multiline))
当然,您必须为正则表达式添加以下using语句才能工作。
@using System.Text.RegularExpressions
希望它对某人有用。