使用 ASP.Net 在 HTML 中显示格式化文本(来自数据库)
Posted
技术标签:
【中文标题】使用 ASP.Net 在 HTML 中显示格式化文本(来自数据库)【英文标题】:Displaying formatted text (from database) in HTML using ASP.Net 【发布时间】:2012-10-26 08:28:52 【问题描述】:我有一个存储在数据库列中的格式化文本,如下所示。使用 SSIS 发送电子邮件时会保留此格式。但是,当我使用网页显示它时,格式不会保留 - 它是单行的。
通过保留格式在 html 中显示它的最佳方式是什么?
注意:我们需要在没有任何第三方控制的情况下实现这一点。但是我们可以使用标准的 ASP.Net 控件
UPDATE Report_Type SET report_template_txt =
'Updates:
-----------------
Transactions Received for 10
Adjustments :
---------------------------
Adjustment holds
Holds past 1 month – 5'
HTML 源代码和渲染:
参考:
save html-formatted text to database
database text with html formatting, how to pull it into my asp.net page
.NET: How to display string as a formatted HTML?
HTML Decoding within textarea
【问题讨论】:
您的参考文献以错误的方式看待问题。您有非 HTML 格式的文本,当呈现到网页时显示为单行,因此您需要转换为 HTML。您链接到的参考资料向您展示了如何获取数据库中已有的 HTML 格式文本,并将其呈现在文本框/纯文本电子邮件等中...... @RemarkLima 我们不能使用任何编码技术正确渲染它吗? 不,因为 HTML 本身不是编码,它是 unicode / ascii 编码的纯文本,带有相关标记以允许其呈现。另一种看待它的方式,如果您想将数据转换为 XML,如果没有要输出的 XML 模式,您如何做到这一点? HTML 标记是此实例中的模式。我很乐意对此进行更正! 【参考方案1】:你需要用<br />
标签替换换行符:
string _outputText; // = Some query to get the string
_outputText = _outputText.replace(Environment.NewLine, "<br />");
// Output - Assign the string to whereever, or however suits now it's HTML friendly
Response.Write(_outputText); // Or asssign to literal etc...
lblSomeLabel.text = _outputText;
您可能还希望用不间断的空格替换空格,如下所示:
_outputText = _outputText.Replace(" ", " ");
那么您可能还希望使用固定宽度的字体,例如 courier 或 courier-new,以便格式一致。
【讨论】:
以上是关于使用 ASP.Net 在 HTML 中显示格式化文本(来自数据库)的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET / HTML - 使用光标时的文本区域光标位置
Asp.Net Core - 在文本区域中显示字符串列表值?
使用 ASP.net 更改 HTML 文本区域中的字体名称和大小