2012-11-22 4 views
10

別のマシンで作成した新しいasp.net MVCアプリケーションをテストしたところ、レイアウトは正しくなく、IE9では奇妙に見えました。開発者ツールを見ると、Mode/Standardsは古いバージョンとCompatibility Modeに設定されていました。これをIE9に戻してもう一度OKでした。MVCアプリケーションでIE9に古い標準を使用させる

しかし、サイトを再度開いたときに、これらの値が再び設定されました。これらの値が上書きされたり、何らかの原因でこれらの値が古いバージョンに変更されたりします。

+0

、単に "MVC" として "ASP.NET MVC" を参照停止してください(この記事は、また がインターネットエクスプローラ9のために使用することができます)。一方はフレームワークであり、他方は言語に依存しない設計パターンです。それはIEを呼び出すようなものです - "インターネット" –

+0

はい、私は、悪い習慣が修正されることを認識します。 – user1166905

答えて

20

IEブラウザファミリがどのレンダリングモードが最適かを推測するために使用するメカニズムがいくつかあります。このトピックの詳細読みがあります:

X-UA-Compatible is set to IE=edge, but it still doesn't stop Compatibility Mode

あなたがターゲットとしているIEのバージョン、言いたいことがどのような方法があります。 <title>

<!DOCTYPE html> 
<html> 
    <head> 
    <title>My Web</title> 
    <meta http-equiv="X-UA-Compatible" content="IE=100" > 
    ... 

<head>要素に(実際には最初の)最初としてこのHTMLタグを入れてコンテンツを使用すると、IE 8.0をターゲットにしている場合、IE = 100はIE 9.0 ++のために動作しますcontain="IE=8"でなければなりません。

この動作はイントラネットでは機能しませんが、私の体験は とは異なります。要点は、<meta>の要素が最初にでなければならないことです! 最初の手段は、の前にコメントがありません。の前です。タイトルの後の最初のものだけはありません。例えば

、私はそれが何であるかバージョンを確認し、ブラウザに関連するメタを置くためにコード内のサーバー側でいくつかの調査を行う - 最初の要素として

+0

また、IEはローカルファイルにこのメタタグを使用しないことに注意してください:/// ... – Jono

8

余分な注意点として、テスト時にローカルブラウザに互換性オーバーライドを保存することが可能です。 (http://answers.microsoft.com/en-us/ie/forum/ie9-windows_7/ie9-always-rendering-pages-in-ie7-compatibility/c0177b44-3950-e011-8dfc-68b599b31bf5)から

ステップ1:のは、互換表示をオフにして確認してみましょう。

a。オープンインターネットエクスプローラ。

b。キーボードのAltキーをクリックします。メニュー バーのツールをクリックします。

c。 [互換表示設定]を選択します。

d。互換性のあるすべてのWebサイトを表示するチェックボックスをオフにします。 互換表示設定ウィンドウを表示して閉じます。

手順2:Internet Explorerの設定をリセットして確認します。

参照してください:http://support.microsoft.com/kb/923737

+0

これは私のために働いています...ありがとう:-) –

+0

問題ない、喜んで助けてください:) –

関連する問題