ASP.NETでダブルクォーテーションのエスケープ(パーサーエラー :サーバー タグが正しく形成されていません。)

次のようなASPXのコードを実行したら「パーサー エラー メッセージ: サーバー タグが正しく形成されていません。」というエラーが発生。

<asp:Repeater DataSource="<%# GetDataSource("Hoge") %>"
             ID="rp1"
             runat="server" >
    〜省略〜
</asp:Repeater>

コードビハインドのメソッド引数「Hoge」を囲むダブルクォーテーションが原因でエラー。いろいろ試したところシングルクォーテーションで囲めば大丈夫でした。

  • DataSource="<%# GetDataSource(\"Hoge\") %>" → ×
  • DataSource="<%# GetDataSource(""Hoge"") %>" → ×
  • DataSource="<%# GetDataSource('Hoge') %>" → ×
  • DataSource='<%# GetDataSource("Hoge") %>' → ○:OK

ほかにも良いやり方があるかもしれませんが忘備録ということでメモ。

参考