请不要将此视为重复。我已经尝试过在其他类似帖子中给出的选项,但它们似乎没有成功。
我有一个存储过程,它返回一个字符串,如下所示。
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 />)
似乎没有任何结果。
有类似这样的帖子,但其中没有一个解决方案似乎没有成功。
任何人都可以帮忙。
答案 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 />
}
}