Stringbuilder文本不显示在新行上

dot*_*oob 2 c# asp.net stringbuilder

我有一个通用的html控件 - 一个'P'标签,我添加了一个runat="server".

我使用Stringbuilder方法构造一个字符串,并将其应用于标记的InnerHtml属性.

该文本包含许多sb.Appendline()作为段落的静态显示,但不包含任何新行.但是,当我查看创建的标记时,新的行就在那里,显示为间距.

DIV也是如此

任何人对我如何解决这个问题有任何想法?

代码如下:

        var sb = new StringBuilder();
        sb.Append("Congratulations!");
        sb.AppendLine();
        sb.AppendLine();
        sb.AppendFormat("Your application was accepted by <b>{0}</b>.", response.AcceptedLender);
        sb.AppendLine();
        sb.AppendFormat("Your reference number is <b>{0}</b>.", response.PPDReference);
        sb.AppendLine();
        sb.AppendLine();
        sb.Append("Click the button below to sign your loan agreement electronically and collect your cash.");

        AcceptedMessage.InnerHtml = sb.ToString();
Run Code Online (Sandbox Code Playgroud)

Joe*_*ton 8

而不是使用AppendLine应该使用AppendFormat:

myStringBuilder.AppendFormat("{0}<br />", strToAppend);
Run Code Online (Sandbox Code Playgroud)

如果您需要将这些换行符保持为"原样",因为您将其显示在文本文件或某种性质中,则在调用该.ToString()方法时,您需要使用html中断替换新行文本.

myStringBuilder.Replace(Environment.NewLine, "<br />").ToString();
Run Code Online (Sandbox Code Playgroud)

Environment.NewLine在这里使用可能不起作用,您实际上可能需要更换\r\n.