Question

J'ai la section suivante dans mon fichier 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>

mais le

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>

n'est pas présent dans l'en-tête des pages lorsqu'elles sont rendues sur mon site. J'ai suivi les conseils donnés dans ce message App ASP.NET - Définir le mode de compatibilité IE7? mais cela ne semble pas fonctionner comme prévu avec IE8 et IIS6. Des indices?

Était-ce utile?

La solution

Le problème est que j'utilise IIS6 . IIS6 examine la section <system.web> de Web.config au lieu de la section <system.webServer> (utilisée par IIS7, sauf si elle est exécutée en mode de compatibilité). Pour rendre cette balise META sur chaque page de votre site lors de l'exécution d'IIS6, la meilleure option consiste à l'ajouter à votre page MasterPage. J'ai fini par ajouter le bloc de code suivant à l'événement OnPreRender de ma page maître:

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

La raison pour laquelle j'ai utilisé AddAt au lieu de simplement Ajouter, c'est parce que la balise méta compatible avec X-UA doit apparemment être la première chose dans l'en-tête de page pour pouvoir être respectée.

J'espère que cela aidera quelqu'un dans le même bateau!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top