【问题标题】:SQL data with new lines does not reflect in mvc view带有新行的 SQL 数据不反映在 mvc 视图中
【发布时间】:2017-10-26 11:05:16
【问题描述】:

请不要将此视为重复。我已经尝试过其他类似帖子中给出的选项,但似乎没有成功。

我有一个存储过程,它返回一个字符串,如下所示。

 SET @TempMessage = 'Ok:  1 message in abc table' + char(13) + char(10)
    ....
    SET @TempMessage = @TempMessage +  ' Ok: 1 message in def table' + char(13) + char(10)
    ....
    SET @TempMessage = @TempMessage +  ' Ok: 1 message in ghi table'

    SELECT @TempMessage

我希望 MVC 视图中的输出如下(3 行)

Ok:  1 message in abc table
Ok:  1 message in def table
Ok:  1 message in ghi table

但我得到的输出只有一行

确定:abc 表中有 1 条消息 确定:def 表中有 1 条消息 确定:ghi 表中有 1 条消息

在控制器中,我尝试如下替换字符串

var results = db.storedprocedure().FirstOrDefault()
viewmodel.outputmessage = results.replace(@"\r\n", Environment.NewLine)

但是没有用。

也试过

viewmodel.outputmessage = results.replace(@"\\r\\n", Environment.NewLine)
viewmodel.outputmessage = results.replace("\r\n", Environment.NewLine)
viewmodel.outputmessage = results.replace("\\r\\n", Environment.NewLine)
viewmodel.outputmessage = results.replace(@"\r\n", <br />)

似乎没有任何结果。

类似的帖子也有,但里面的解决方案似乎都没有奏效。

谁能帮忙。

【问题讨论】:

  • 我有点失落。存储过程不会返回多行吗?每条消息 1 行并将表示留给消费者?然后,您可以将每一行映射到视图模型中的一个数组中,或者根据需要将它们连接成一个字符串,并根据需要由任何中断、换行符等分隔。
  • 服务器端是否有任何限制,只返回一个包含多个字符串的表?
  • 我很抱歉。存储过程只返回一个字符串。我已经修改了帖子。

标签: c# sql model-view-controller


【解决方案1】:

在 HTML 中,所有换行符都被视为空格。要使它们作为换行符可见,您需要找到换行符,并在它们的位置渲染一个 &amp;lt;br /&amp;gt; 标记,如以下示例查看代码中所示:

@{
    var str = "--1--/r/n--2--/r/n--3--";
    var lines = str.Split(new[] { "/r/n" }, StringSplitOptions.None);
    foreach (var line in lines)
    {
        @(line)<br />
    }
}

【讨论】:

  • 谢谢,它正在工作。但我想知道为什么 results.Replace(@"\r\n", "
    ");在控制器方法中不起作用
  • 首先你的语法似乎不正确,应该是results.replace(@"\r\n", "&lt;br /&gt;")。此外,如果您使用@outputmessage,那么这将对您正在打印的任何内容进行 HTML 编码,这意味着您的&amp;lt;br /&amp;gt; 实际上会以&amp;lt;br /&amp;gt; 的形式发送到浏览器。这可以通过使用@Html.Raw(outputmessage) 来防止,但是来自数据库的任何特殊标记都将被浏览器解释(例如&lt;b&gt;text&lt;/b&gt; 变为文本,并且任何&lt;script&gt;-parts 都将开始被执行在浏览器中)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多