Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示换行符asp.net mvc razor_C#_Asp.net Mvc_Razor_Textarea_Line Breaks - Fatal编程技术网

C# 显示换行符asp.net mvc razor

C# 显示换行符asp.net mvc razor,c#,asp.net-mvc,razor,textarea,line-breaks,C#,Asp.net Mvc,Razor,Textarea,Line Breaks,我使用以下命令将文本输出为HTML元素中输入的换行符 MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />")) MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine,“”) 有更好的方法吗 也许您可以在标记中输出文本。您的代码容易受到XSS攻击,因为它没有对文本进行HTML编码。我向

我使用以下命令将文本输出为
HTML元素中输入的换行符

MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine, "<br />"))
MvcHtmlString.Create(Model.Post.Description.Replace(Environment.NewLine,“
”)

有更好的方法吗

也许您可以在标记中输出文本。

您的代码容易受到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()

还有一个更好/很棒的解决方案,它采用了:

使用此选项可以避免(XSS)漏洞

<p class="message">
@Html.Raw("<p>" + Model.Text + "</p>")
</p>

@Model.Message

使用ASP.NET MVC Razor engine就像一个魔咒。

它对我有用

@MvcHtmlString.Create(Regex.Replace(Html.Encode(Model.Address), Environment.NewLine, "<br />", RegexOptions.Multiline))

@Html.Raw(“”+Model.Text+“

”)

字符串模型。文本中有
标记。

这是我的解决方案

@using System.Text.RegularExpressions
希望它对某人有用。

只需使用标签即可。
@Model.Post.Description

@Html.Raw(HttpUtility.HtmlDecode(Model.Post.Description.Replace(“\r\n”,“
”))
只需执行以下命令,因为它已启用筛选功能:


当你用空格替换换行符时,我真的看不出这个助手是如何输出任何换行符的。@Darin-我的复制/粘贴不好,updated.dup这能回答你的问题吗?事实上,这应该是公认的答案。因为op要求一个更好的方法!这是开放的XSS攻击。将
alert('XSS')'
放入您的
Model.Text
中,您就有了一个vuln.@trailmax然后提供一个更好的解决方案这与公认的答案有何不同?
@using System.Text.RegularExpressions
@Html.Raw(HttpUtility.HtmlDecode(Model.Post.Description.Replace("\r\n", "<br>")))