首页 > 解决方案 > razor core 中的多行文本显示

问题描述

我已经使用 textarea html 标签进行了多行输入,例如:

line 1
line 2 with <tags> and &#64; and <b> bold </b>
line 3

但是我以后如何显示呢?

如果我使用:

@Html.DisplayFor(m => m.MultilineText2)

它可以很好地处理特殊字符,但不能处理换行符

如果我使用:

@Html.Raw(Model.MultilineText2.Replace(Environment.NewLine, "<br/>"))

它处理换行符,但不处理特殊字符。

我只希望结果完全按照用户输入的方式显示(正如您在上面的示例中看到的那样)

标签: razorasp.net-coreasp.net-core-mvc

解决方案


如果我理解正确,您想要的是对除换行符之外的所有其他内容进行编码。但你不需要关心这个。因为有一个标准的方式white-space

前线

空白序列被折叠。在换行符处、在 处
和根据需要填充行框时会换行。

因此,只需添加 a 即可white-space: pre-line

<span style="white-space: pre-line">@Html.DisplayFor(m => m.MultilineText2)</span>

生成的 html 将是:

<span style="white-space: pre-line">line 1
 line 2 with &lt;tags&gt; and &amp;#64; and &lt;b&gt; bold &lt;/b&gt;
line 3</span>

在此处输入图像描述


推荐阅读