TLDR: updatepanel の部分的なポストバック内でアウトバウンド ルールが適用されない
IIS 7.5 URL Rewriter を使用して、イメージ パスを cdn にマップしています。
これが何が起こっているかの簡略化されたバージョンです
<Repeater Goes Here>
<img alt="alt text" src="<%#getImageSource(Eval("Filename").ToString() )%>">
<End of Repeater>
関数 getImageSource が返すとしましょう"/images/someimage.jpg"
これは次のように書き換えられます
<img alt="alt text" src="http://img.cdn.com/someimage.jpg">
これを機能させる送信ルールは次のとおりです。
<rule name="Out_Rewrite_ServeCookieLessImages" preCondition="ResponseIsHtml" enabled="true">
<match filterByTags="Img" pattern="^/Images/(.*)$"/>
<action type="Rewrite" value="http://img.cdn.com/{R:1}"/>
</rule>
<preConditions>
<preCondition name="ResponseIsHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html"/>
<add input="{URL}" pattern="\.axd.*$" negate="true"/>
</preCondition>
</preConditions>
問題は、更新パネル内でリピーターを使用する場合です。
非同期ポストバックの後に出力される実際の html は
<img alt="alt text" src="/Images/someimage.jpg">
それ以外の
<img alt="alt text" src="http://img.cdn.com/someimage.jpg">
updatepanel で出力を正しく解析するにはどうすればよいですか?
前もって感謝します
編集:この時点での私の推測では、ページのライフサイクルで何かをしなければならない...またはおそらく書き換えモジュールが呼び出される順序が...更新され続ける