2011-05-10 47 views
0

这里是我的代码:如何在C#变量追加到一个字符串

string abc = "hello welcome!!"; 
StringBuilder sb = new StringBuilder(); 

sb.Append("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***"<%= i want to pass abc here %>"***</nobr></B></span></td>"); 

sb.Append("</tr></table>"); 
+0

请记住接受帮助你的答案(对你认为合适的答案使用勾号)。 – V4Vendetta 2011-05-10 09:39:33

回答

3

您应该使用+ operator这样的:

string abc = "hello welcome!!"; 

StringBuilder sb = new StringBuilder(); 

sb.Append("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***" + abc + "***</nobr></B></span></td>"); 

sb.Append("</tr></table>"); 

或者你也可以使用string.Format

string abc = "hello welcome!!"; 

StringBuilder sb = new StringBuilder(); 

sb.Append(string.Format("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***{0}***</nobr></B></span></td>", abc)); 

sb.Append("</tr></table>"); 
+0

工作感谢分享。 – user715045 2011-05-10 08:00:38

3
sb.Append("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***"+ abc +"***</nobr></B></span></td>"); 
sb.Append("</tr></table>"); 
+0

感谢它的工作! – user715045 2011-05-10 07:59:41

0

如下ws:

sb.Append("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***"+ HttpUtility.HtmlEncode(abc) +"***</nobr></B></span></td>"); 
sb.Append("</tr></table>"); 

请注意对HtmlEncode的调用 - 如果您的字符串来自不受信任的来源,则这非常重要。

1

使用Append方法:

string abc = "hello welcome!!"; 

    StringBuilder sb = 
     new StringBuilder(); 
     .Append("<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>***") 
     .Append(abc) 
     .Append("***</nobr></B></span></td>") 
     .Append("</tr></table>"); 

如果字符串可以包含任何需要的编码:

 .Append(HttpUtility.HtmlEncode(abc)) 
0

您可以使用XML编写,而不是哪个更清洁:

StringBuilder builder = new StringBuilder(); 

using (XmlWriter writer = XmlWriter.Create(builder)) 
{ 
    string abc = "hello welcome!!"; 

    writer.WriteStartElement("td"); 
    writer.WriteAttributeString("style", "padding-left:30px;width:100%"); 
    { 
     writer.WriteStartElement("span"); 
     writer.WriteAttributeString("id", "AnnMsg"); 
     writer.WriteAttributeString("target", "_top"); 
     writer.WriteAttributeString("style", "text-decoration:none;cursor:pointer"); 
     { 
      writer.WriteStartElement("B"); 
      { 
       writer.WriteStartElement("nobr"); 
       { 
        writer.WriteString(abc); // Here's where your variable is rendered as text 
       } 
       writer.WriteEndElement(); 
      } 
      writer.WriteEndElement(); 
     } 
     writer.WriteEndElement(); 
    } 
    writer.WriteEndElement(); 
} 

这就是XmlWriter会将XML文本写入您的StringBuilder。

另一种方法是使用StringBuilder.AppendFormat:

string abc = "hello welcome!!"; 

    StringBuilder sb = new StringBuilder(); 

    sb.AppendFormat 
    (
     "<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>{0}</nobr></B></span></td></tr></table>", 
     arg0: abc 
    ); 

StringBuilder.AppendFormat像的String.Format:

对我来说,使用的主要好处XML编写器是您避免人为错误,您的(X)HTML将毫无疑问地形成良性。