【问题标题】:c# string return with newline on webpagec#字符串在网页上用换行符返回
【发布时间】:2017-09-09 23:05:14
【问题描述】:

我有一个从控制器返回到网页的 c# 字符串值。该字符串有新行,但网页将所有内容打印为一条连续的行。

这是我的 C#。我正在尝试各种方法:

if (run5min)
                {
                    msg = db.FirstOrDefault<string>("SELECT Top 1 Timestamp_UTC FROM dbo.Admin_Log WHERE Details like 'Start%5min%' ORDER BY Timestamp_UTC DESC");                    
                    ret += String.Format("Started 5min Run {0} UTC | Count is: {1} \r\n\r\n", msg, count);
                }

                if (!runDay && !runHour && !run5min)
                {
                    var stop = db.FirstOrDefault<string>("SELECT Top 1 Timestamp_UTC FROM dbo.Admin_Log WHERE Details like 'Stop%' ORDER BY Timestamp_UTC DESC");

                    if (stop == null)
                    {
                        ret = "Nothing is running. \r\n\r\n";
                    }
                    else
                    {
                        ret = String.Format("Stopped at {0} UTC.<br/><br>", stop);
                    }                    
                }

                ret += "Day table count: " + countDay + "\n\n";
                ret += "Hour table count: " + countHour + "<br />";
                ret += "5min table count: " + count5min;

在 VS 的文本可视化器中,它显示换行符。

但是,在网页上,它将全部打印为一行,然后换行到第二行。

开始 5 分钟运行 2017 年 9 月 9 日晚上 10:40:11 UTC |计数为:0 /n/nDay 表计数:0
小时表计数:0 5min 表计数:46132

也许我在 Ajax 调用中声明了错误的数据类型?

$.ajax({
                url: "/Quote/Status",
                dataType: "text"
            }).done(function (response) {                                
                $("#message").text(response);
            })

如何解决?谢谢!

【问题讨论】:

  • 带有id="message" 的元素的样式应该是style="white-space: pre;"(或pre-line) - 参考docs
  • 另外,使用 jQuery 的 text() 函数将删除您 添加的任何 HTML,因此请改用 html()
  • 您可以尝试将\n替换为&lt;br&gt;并使用.html()
  • 由于
    仅供参考
    ,您将其包装到第二行
  • S.如果我在从 api 返回的字符串中使用 \n\r,则 Muecke 的答案有效。谢谢你。我决定使用另一种方法:在字符串中使用
    和 $(#message).html(response)。这也有效。感谢 Tieson 和 LB!

标签: javascript c# jquery asp.net-mvc newline


【解决方案1】:

如果您的文本必须在浏览器中呈现,请尝试使用

<br />

代替

\n

由于 HTML 使用 linebreak 标签来换行,而不是通常的“\n”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多