Как добавить переменную C # в строку - PullRequest
0 голосов
/ 10 мая 2011

Вот мой код:

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>");

Ответы [ 5 ]

3 голосов
/ 10 мая 2011

Вы должны использовать оператор + , например:

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 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>");
3 голосов
/ 10 мая 2011
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>");
1 голос
/ 10 мая 2011

Используйте метод 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 голосов
/ 10 мая 2011

Вместо этого вы можете использовать средство записи 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 Writer является то, что вы избегаете человеческих ошибок, и ваш (X) HTML будет безошибочно сформирован.

0 голосов
/ 10 мая 2011

следующим образом:

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 - это очень важно, если ваша строка из ненадежного источника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...