1

コードに組み込まれている文字列に若干の問題があります。ページをデバッグすると、URL が正しくありません。例えば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

( ) でエスケープされた引用符と " ( ) でエスケープされた引用\符が混在していて、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 の前に引用符がなく、その後に 2 つの引用符があるためです。引用符 (スペースのない値の場合) を省略しても問題ありませんが、両方とも省略しなければなりません。開始引用符を省略すると、末尾の引用符 (この場合はマーク) が値の一部になります。

また、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 に答える