1

我的代码中构建了一个字符串有一个小问题。当我调试我的页面时,网址不正确。例如,当点击我页面上的链接时,Google 的 url 就是这个。http://www.google.co.uk%22%22/

请参阅下面的代码。

sb.Append(@"<a href=" + r["Url"].ToString() + "\"" + @""" target=""blank"">");
sb.Append(@"<img src=""../ShowImage.ashx?id=" + r["Image_id"] + "\" title=\"" + r["Title"].ToString() + "\"  alt=\"" + r["Alt_text"].ToString() + "\"  >");
sb.Append("</a>");

我如何构建我的字符串有错误吗?

谢谢。

4

3 回答 3

1

您将用\( "\"") 转义的引号与用 " ( @""") 转义的引号混合在一起,并且有一个太多。试试这个:

sb.Append(@"<a href=""" + r["Url"].ToString() + @""" target=""blank"">");
于 2012-04-16T11:46:53.877 回答
0

%22是字符串编码的版本"

尝试:

sb.Append(@"<a href=" + r["Url"].ToString() + "\ + @""" target=""blank"">");
于 2012-04-16T11:46:40.210 回答
0

那是因为 URL 前面没有引号,但后面有两个引号。省略引号是可以的(对于没有空格的值),但是你必须省略它们。当您省略起始引号时,末尾的引号(或在本例中为标记)成为值的一部分。

另外,当你有一个 StringBuilder 时,你为什么要连接字符串?直接使用该Append方法,而不是先连接字符串,然后附加结果。

sb
  .Append("<a href=\"").Append(r["Url"].ToString()).Append("\" target=\"blank\">")
  .Append("<img src=\"../ShowImage.ashx?id=").Append(r["Image_id"]).Append("\" title=\"").Append(r["Title"].ToString()).Append("\"  alt=\"").Append(r["Alt_text"].ToString()).Append("\">")
  .Append("</a>");
于 2012-04-16T12:03:01.283 回答