2

私は一般的な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();
4

4 に答える 4

9

使用する代わりに、次を使用するAppendLine必要がありますAppendFormat

myStringBuilder.AppendFormat("{0}<br />", strToAppend);

これらの改行をテキスト ファイルなどに表示するために「そのまま」にしておく必要がある場合は、.ToString()メソッドを呼び出すときに改行テキストを HTML 改行に置き換える必要があります。

myStringBuilder.Replace(Environment.NewLine, "<br />").ToString();

ここでの使用Environment.NewLineは機能しない可能性があり、実際には を置き換える必要がある場合があります\r\n

于 2013-01-04T14:39:43.237 に答える
2

stringlbuilder 改行 (\n) を BR タグに変換する必要があります

HTML改行でレンダリングできるようにします。

さらに良い IMO は、行全体を P タグで囲むことです。

于 2013-01-04T14:41:12.837 に答える
0

StringBuilder によって追加された行はブラウザーに表示されません。ブラウザは
改行のみを認識します。したがって、ブラウザに表示するためのタグを含める必要があります

  sb.AppendLine("some text here <br />");

新しい行は、ブラウザではなくコンソール アプリケーションに表示されます

新しい行を置き換えることもできます

AcceptedMessage.InnerHtml = sb.ToString().Replace("\n", "<br />");
于 2013-01-04T14:43:06.063 に答える
0
string messagePattern = @"
<p>Congratulations!</p>
<p>Your application was accepted by <b>{0}</b>.<br />
   Your reference number is <b>{1}</b>.</p>
<p>Click the button below to sign your loan agreement 
   electronically and collect your cash.</p>";

AcceptedMessage.InnerHtml = string.Format(
    messagePattern, 
    response.AcceptedLender, 
    response.PPDReference);
于 2013-01-04T16:16:49.837 に答える