【问题标题】:Displaying formatted text (from database) in HTML using ASP.Net使用 ASP.Net 在 HTML 中显示格式化文本(来自数据库)
【发布时间】: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 源代码和渲染:

参考:

  1. save html-formatted text to database

  2. database text with html formatting, how to pull it into my asp.net page

  3. .NET: How to display string as a formatted HTML?

  4. HTML Decoding within textarea

【问题讨论】:

  • 您的参考文献以错误的方式看待问题。您有非 HTML 格式的文本,当呈现到网页时显示为单行,因此您需要转换为 HTML。您链接到的参考资料向您展示了如何获取数据库中已有的 HTML 格式文本,并将其呈现在文本框/纯文本电子邮件等中......
  • @RemarkLima 我们不能使用任何编码技术正确渲染它吗?
  • 不,因为 HTML 本身不是编码,它是 unicode / ascii 编码的纯文本,带有相关标记以允许其呈现。另一种看待它的方式,如果您想将数据转换为 XML,如果没有要输出的 XML 模式,您如何做到这一点? HTML 标记是此实例中的模式。我很乐意对此进行更正!

标签: asp.net .net


【解决方案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(" ", "&nbsp;");

那么您可能还希望使用固定宽度的字体,例如 courier 或 courier-new,以便格式一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2015-06-14
    • 2017-07-03
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多