我有这行代码形成一个html字符串:
StringBuilder builder = new StringBuilder();
builder.Append("<a href='#' onclick=");
builder.Append((char)22); //builder.Append('\"');
builder.Append("diagnosisSelected('" + obj.Id + "', '" +obj.Name + "')");
builder.Append((char)22);
builder.Append(" >" + obj.Name + "</a>");
在浏览器中我得到了
<a href='#' onclick=\"diagnosisSelected('id', 'text')\" >some text here</a>
因为“我得到错误。”。如何输出“?
答案 0 :(得分:11)
有趣的是,有多少次我看到人们使用StringBuilder却完全忽略了它们。 StringBuilder上有另一个名为AppendFormat的方法,它可以帮助你很多:
builder.AppendFormat("<a href='#' onclick=\"foo('{0}','{1}')\">{2}</a>", var1, var2, var3);
希望这有帮助,
答案 1 :(得分:5)
使用\“
引号是特殊字符,因此必须通过在它们前面添加反斜杠来“转义”它们。
即。而不是
builder.Append((char)22);
使用
builder.Append("\"");
答案 2 :(得分:2)
在双引号字符串中,\
是转义字符。要仅插入"
,您可以使用"\""
。
答案 3 :(得分:1)
替换以下行:
builder.Append((char)的22);
与
builder.Append( “\”“);