具有新行的SQL数据不会反映在mvc视图中

时间:2017-10-26 11:05:16

标签: c# sql model-view-controller

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

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

 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条消息Ok: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 个答案:

答案 0 :(得分:1)

在HTML中,所有换行符都被视为空格。要使它们作为换行符可见,您需要找到换行符,并在其位置呈现<br />标记,如下例中的查看代码:

@{
    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 />
    }
}