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)
而不是使用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.