rak*_*los 23 c# asp.net-mvc textarea line-breaks razor
我正在使用以下内容使文本输出在<textarea>HTML元素中输入换行符.
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
Len*_*rri 66
有一个更好/更棒的解决方案,采用CSS白色空间属性:
使用此功能可以避免跨站点脚本(XSS)漏洞......
<p style="white-space: pre-line">@Model.Message</p>
Run Code Online (Sandbox Code Playgroud)
像ASP.NET MVC Razor引擎一样魅力.
Dar*_*rov 23
您的代码很容易受到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);
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,您可以安全地:
@Html.SomeHelper()
Run Code Online (Sandbox Code Playgroud)
只需使用一个标签即可。
<pre>@Model.Post.Description</pre>
或者
@Html.Raw(HttpUtility.HtmlDecode(Model.Post.Description.Replace("\r\n", "<br>")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27820 次 |
| 最近记录: |