質問

Web.configファイルに次のセクションがあります

<system.webServer>
    <!-- For now..... lets be safe and put IE8 in IE7 compatibility mode-->
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=EmulateIE7" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

しかし

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
私のサイトでページがレンダリングされるとき、ページのヘッダーには

は存在しません。この投稿のアドバイスに従いました ASP.NETアプリ-IE7互換モードを設定しますか? しかし、IE8およびIIS6を使用して期待どおりに機能していないようです。ヒントはありますか?

役に立ちましたか?

解決

問題は、 IIS6 を使用していることでした。 IIS6は、<system.web>セクションではなくWeb.configの<system.webServer>セクションを調べます(互換モードで実行されていない限り、IIS7で使用されます)。 IIS6を実行しているときに、サイトのすべてのページでこのメタタグをレンダリングするには、MasterPageに追加するのが最善の方法だと思います。最終的に、MasterPageのOnPreRenderイベントに次のコードブロックを追加しました。

Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });

単なるAddの代わりにAddAtを使用した理由は、X-UA-Compatibleメタタグが尊重されるためには、ページヘッダーの最初の要素でなければならないためです。

これは同じ船に乗っている人の助けになりますように!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top