我有这样的HTML代码:
<tr>
<th colspan="2" style="padding: 10px; font-size: 11px; background: #eee; border: 1px solid white" align="left">
Some Text Here
</th>
</tr>
我将其存储在这样的字符串中:
string gtr =
@"<tr>
<th colspan=""2"" style=""padding: 10px; font-size: 11px; background: #eee; border: 1px solid white"" align=""left"">
Some Text Here
</th>
</tr>";
但是当我调试它时显示字符串像这样:
<tr>
<th colspan=\"2\" style=\"padding: 10px; font-size: 11px; background: #eee; border: 1px solid white\" align=\"left\">
Some Text Here
</th>
</tr>
显示转义序列字符。
试图像这样删除它们
gtr = gtr.Replace(@"\","");
和使用所有其他可能的方法
但是这不起作用它始终显示带有转义序列字符的字符串 gtr 。
如何在没有Escape Sequence Character的情况下实现字符串,并且只提供清晰的HTML代码。
我只使用ASP.NET和C#而不是使用MVC,这是一个静态内容。
答案 0 :(得分:5)
但当我调试它时显示字符串
那是因为你正在查看调试器中的字符串 。该字符串实际上并不包含那些反斜杠 - 它们只是调试输出的一部分,它会转义各种字符,使其看起来像是代码中的常规字符串文字。
将字符串写入文件或控制台,你会发现反斜杠确实不存在。
作为一种在调试器中说服自己的另一种方法,试试这个:
string x = "\"\"";
int y = x.Length;
char z = x[0];
然后在调试器中,您会看到y
为2,而z
只是"
- 它可能会再次转义,但显然它不能同时是两个字符\"
,因为它只是char
。
答案 1 :(得分:2)
当我从Quick Watch检查Text Visualizer中的代码时,它会显示没有转义字符的字符串,请参阅以下快照