2012-05-08 17 views
17

私は新しいASP.NET MVC 4ベータ版を使用していますが、レスポンシブデザインで動作するシステムを作成しようとしていますが、特定のビューでモバイルビューを使用してモバイルデバイスの特定のビューをレンダリングしています。なぜASP.NET MVCのモバイルビューは、異なるサーバーで異なる表示ですか?

私の構造は、私がShow.cshtmlを持っていて、それに続いてShow.mobile.cshtmlがあるということだけです。

私のサイトを私の開発マシンからIIS Express経由で利用できるようにすると、このビューはiPad、iPhone、Androidの携帯電話、モバイルオペラ用で正しく表示され、私の開発者でIIS 7.5にローカル公開する機械。

ライブサーバーにデプロイするときに問題が発生し、2つの異なるサーバーにデプロイしようとしました。その後、モバイルビューはiPhoneにのみ配信され、他のモバイルデバイスには配信されません。これは一貫してそうです。私たちのサーバーはWindows 2003/IIS6とWindows 2008 R2/IIS7.5の両方で設定されており、どちらも同じように動作します。

この原因は何ですか?

私はglobal.asaxにカスタムを追加していません。いくつかのより多くの研究の後

UPDATE

のDisplayModeとモバイルビューのデフォルトの動作はRequest.Browser.IsMobileDeviceフラグに依存していることを私には明らかと思われます。このフラグは、.NET FrameworkフォルダのConfig/Browsersフォルダにある.browserファイルに依存しているようです。

私の開発マシンでは、私が配備したサーバー上に存在するものとは異なる.browserファイルがあります。これまでのところ、自分のマシンにあるものをWebアプリケーションのApp_Browsers-folderにデプロイしようとしましたが、それは私の問題を解決しませんでした。これが行く方法だろうか?

+0

バイナリーコアランタイムで 船は、あなたのユーザーエージェント文字列を吐き出したことがあり、クラスのWeb.Mvc.FixedWebFormViewEngine、?私はIISがそれを乱しているのかそれを別の方法で解決しているのだろうかと思います。 –

+2

DisplayModeのデフォルトインスタンスは、framework-folderのConfig \ Browsers-folderに定義されているブラウザに依存しているようです。さらにいくつかの研究は、これらが異なるマシンで異なることを示しています。これはWEP Plattform Installerを使用してuppdatedになりますか? – Cros

答えて

6

これはあなたの質問に対する完全な答えではありませんが、私はまだ役立つと思います。

ASP.NETは、私の経験ではブラウザの機能を解決するにはあまりよくありません。ですから、51Degrees.Mobi Foundationを調べることをお勧めします。スティーブン・サンダーソンは、その上の素敵なブログの記事があります。

Using 51Degrees.Mobi Foundation for accurate mobile browser detection on ASP.NET MVC 3

私は完全にわかりませんが、あなたはASP.NET MVC 4のDisplayModeインフラストラクチャに簡単にこれをフックアップすることができるはずです。ここではその上の優れたリソースは次のとおりです。

51Degrees.mobi and MVC4

+1

私はこのルートに行くことに決めましたが、それは私の質問に対する完全な答えではありません。 51DegreesはIsMobileDeviceをデフォルトの実装よりも優れていると思われるので、当面使用します。 – Cros

+0

@Cros yep、私も示したようにurの質問への完全な答えではありません。 – tugberk

0

私は(それは一瞬のために働いていた)私は下記たソリューションが答えだと思ったが、それはまだしばらく後に間違った表示に切り替えます。

インターネットの残りの部分のように、私は(下の私のために動作しませんが、多分それはあなたのために行います。これは完璧に働いて、そして


を設定することは非常に簡単です51 Degrees from Nuget をインストール) http://www.nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes

既知のバグであるように見える:http://aspnetwebstack.codeplex.com/workitem/280?PendingVoteId=280

上記CodePlexのリンクによると、これを確認するために覚えている:(Global.asaxの中で、例えば)登録ビュー エンジンのリストをカスタマイズするプロジェクトの小さなセットあなた がMicrosoft.Web.Mvc.FixedRazorViewEngineまたは マイクロソフトを参照していることを確認する必要がありますについては

。代わりに

関連する問題