我的代码中构建了一个字符串。当我调试我的页面时,网址不正确。例如,当点击我页面上的链接时,谷歌的网址是这样的。 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>");
我是如何构建字符串的?
感谢。
答案 0 :(得分:1)
您将使用\
("\""
)转义的引号与使用“(@"""
)转义的引号混合并且有太多。请尝试此选择:
sb.Append(@"<a href=""" + r["Url"].ToString() + @""" target=""blank"">");
答案 1 :(得分:0)
%22
是"
尝试:
sb.Append(@"<a href=" + r["Url"].ToString() + "\ + @""" target=""blank"">");
答案 2 :(得分: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>");