gpt4 book ai didi

asp.net - 如何将具有换行符的 SQL 值转换为 HTML 中的适当段落

转载 作者:行者123 更新时间:2023-12-01 09:05:18 24 4
gpt4 key购买 nike

我有一个从 SQL 返回的文本,其中可能有换行符。但是,由于我将值介于 <p></p> 之间标签,它忽略了换行符。

例如,如果 SQL 中的文本实际上是这样的(行之间有 CRLF):

foobar car
carbar foo

HTML 代码变为:
<p>foobar car
carbar foo</p>

这只是呈现为:
foobar car carbar foo

最终,我似乎想检测换行符,然后添加适当的 HTML,例如:
<p>foobar car</p><p>carbar foo</p>

甚至
<p>foobar car<br/><br/>carbar foo</p>

这应该在前端处理还是在返回数据的 SQL 查询中处理?似乎应该在前端代码(在我的 ASP.NET View 中)上处理它,但如果是这样,如何处理?

我注意到 PHP 中有一个函数可以处理这种情况: nl2br (http://www.php.net/manual/en/function.nl2br.php)但不幸的是这对我没有帮助:)

最佳答案

执行这种逻辑通常是您的表示代码然后是您的数据库或中间层。

我推荐的方法是编写一些 .net 代码来用 <br/> 替换 cr 和 lf标签。代码本身很简单,下面是一个模拟 php nl2br 函数的示例:

string nl2br(string text)
{
return text.Replace("\r", "<br/>").Replace("\n", "<br/>");
}

您也可以使用 REPLACE() 在 SQL 中执行此转换。和 CHAR()尽管最好在表示层而不是数据库层中执行这种转换。

SQL 方法是:
SELECT REPLACE(REPLACE(myStr, char(13), '<br/>'), CHAR(10), '<br/>')

这将取代 CHAR(13)CHAR(10) (cr 和 lf)与 <br/>标签。

第三种选择是在 preformatted text 处呈现您的文本。使用 <pre>标签,尽管这实际上只适用于一小部分用例(例如在 StackOverflow 上显示此处使用的代码)

例如
<pre>
foobar car
carbar foo
</pre>

它将呈现如下:

foob​​ar车
卡巴富

保持空格和新行完整。

关于asp.net - 如何将具有换行符的 SQL 值转换为 HTML 中的适当段落 <p>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com