[FIX] BasePartialCachingControl クラスの Render メソッドの書き込みで HtmlTextWriter が使用される

この記事は、以前は次の ID で公開されていました: JP321552
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
BasePartialCachingControl クラスの Render メソッドで、HtmlTextWriter 型の writer 変数を使用して書き込みが行われます。これは、ユーザー コントロールに OuputCache ディレクティブを使用すると頻繁に発生します。下位のブラウザでページを参照しても、Html32TextWriter ではなく HtmlTextWriter がユーザー コントロールの書き込みに使用され続けます。

例を示します。
<%@ Control Language="c#" %><%@ OutputCache Duration="30" VaryByParam="none" %><asp:TextBox id="txt" runat="server" Width="442px" />				
上記のユーザー コントロールは、下位のブラウザに対しては次のように書き込む必要があります。
<input name="txt" id="txt" type="text" />				
しかし、キャッシュされたコントロールの書き込みに HtmlTextWriter 型が使用されるため、ブラウザでは次のようにユーザー コントロールが書き込まれます。
<input name="txt" id="txt" style="width:449px;" type="text" />				
style 属性に注意してください。
解決方法
この問題を解決するには、Microsoft .NET Framework の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
318836 最新の .NET Framework 1.0 Service Pack の入手方法
修正プログラム (英語版) の属性は次のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。
   日付            時刻    バージョン             サイズ   ファイル名   --------------------------------------------------------------   17-Apr-2002  20:45  1.0.3705.252      192,512  Aspnet_isapi.dll     17-Apr-2002  20:39                     19,332  Aspnet_perf.ini   17-Apr-2002  20:45  1.0.3705.252       24,576  Aspnet_regiis.exe     17-Apr-2002  20:45  1.0.3705.252       28,672  Aspnet_wp.exe       20-Mar-2002  13:31                      8,709  Smartnav.js   20-Mar-2002  13:31                      7,003  Smartnavie5.js   19-Apr-2002  10:40  1.0.3705.252    1,183,744  System.web.dll   				

状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。この問題は、Microsoft .NET Framework Service Pack 2 (SP2) で最初に修正されました。
詳細
修正プログラムを適用すると、キャッシュされたコントロール (たとえば、OuputCache ディレクティブを含んだユーザー コントロール) は、HtmlTextWriter ではなく、そのページに対応した writer 変数を使用して書き込まれます。

下位のブラウザを使用する場合、writer 変数の型は Html32TextWriter になります。上位のブラウザを使用する場合、writer 変数の型は HtmlTextWriter になります。
プロパティ

文書番号:321552 - 最終更新日: 02/10/2014 01:46:11 - リビジョン: 2.2

Microsoft ASP.NET 1.0

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbcaching kbfix kbnetframe100presp2fix kbnetframe100sp2fix kbservercontrols KB321552
フィードバック