如何在ASP.NET中使HTML呈现换行符

bxjv4tth  于 2023-08-08  发布在  .NET
关注(0)|答案(2)|浏览(93)

我正在尝试构建一个代码格式化工具。我的脚本从服务器获取整个正文文本并隔离代码块。我有代码,我试图检查文本正文中是否有分号符号,并在该字符后插入换行符,但问题似乎是HTML识别<br>标记,因此它会打断任何一行。我还尝试使用StringBuilder将该标记追加到分号字符之后,但不起作用。
下面是我的代码

@if(code != string.Empty) {
// Create a new instance of StringBuilder
var str = new StringBuilder();
  // Find where there is a semicolon
  foreach(var c in code) {
    str.Append(c);
    if(c == ';') {
        // Append a line break
        str.Append("<br>");
     }
  }
  // Display the code in the code div
  <p style="text-align:justify;">@str</p>
}

字符串
我也试过这个:

str.AppendLine();


当您向控制台写入时,该方法有效,但HTML不将'\n'识别为新行字符。它识别<br>。我该怎么做?

oxf4rvwz

oxf4rvwz1#

当您动态生成HTML时,就像您的情况一样,您需要使用Html.Raw()方法来正确呈现HTML标记。
你不需要做这些。您可以简单地使用Replace方法。它将用所需的字符串替换所有出现的分号。

@Html.Raw(@code.Replace(";", "@;<br>"))

字符串

zrfyljdw

zrfyljdw2#

只是另一个选择:在分号后使用.AppendLine(),并将代码 Package 在标记中。

相关问题