【发布时间】: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替换为<br>并使用.html() -
由于
仅供参考,您将其包装到第二行 -
S.如果我在从 api 返回的字符串中使用 \n\r,则 Muecke 的答案有效。谢谢你。我决定使用另一种方法:在字符串中使用
和 $(#message).html(response)。这也有效。感谢 Tieson 和 LB!
标签: javascript c# jquery asp.net-mvc newline