2010-11-29 13 views
4

私はこのチュートリアルに続いて成功しました:http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspxMVC3 Razor - ブラウザの要求に応じてレイアウトを変更する方法はありますか?

モバイルデバイスでページにアクセスすると、すべてのビューがレンダリングされます。しかし、それらは間違ったレイアウトで表示されます(AKAのマスターページ)。

私は次の構造を持っている:問題は、私はすべてのビューで、次のステートメントを配置する必要があり、ある /Views/Shared/Mobile/_Layout.cshtml /Views/Shared/_Layout.cshtml

を:

Layout = "~/Views/Shared/Mobile/_Layout.cshtml"; 

ロジックを配置して別のレイアウトをレイアウトできる場所はありますか?

(normalAccess)が正常_Layout.cshtml他 (mobileAccess)私はどこ見つけることができませんでした/Mobile/_Layout.cshtml

をレンダリングをレンダリングする場合。

ありがとうございました。

+0

FYIは、このアプローチに重要な改善を加えたアップデートされたエントリを投稿しました。ただし、以下の回答はまだ適用されています。http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilitiesViewEngine.aspx –

答えて

7

ありhttp://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx

で良い記事あなたは明らかにあなたはすべてのビュー

サンプル_ViewStartで使用するためにあなたのレイアウトロジックを置くことができ_ViewStart.cshtmlと呼ばれるあなたの\ [ビュー]フォルダ内のファイルを作成することができます。 CSHTMLは単純です:

@{ 
    Layout = "~/Views/Shared/SiteLayout.cshtml"; 
} 

記事も述べている:「_ViewStart.cshtmlは私たちがコードを記述することができますので、私たちは、必要に応じて、単に基本的なプロパティセットよりも私たちのレイアウトの選択ロジックをより豊かにすることができます。たとえば、サイトにアクセスしているデバイスの種類に応じて、使用するレイアウトテンプレートを変更したり、これらのデバイス用に電話機やタブレットに最適化されたレイアウト、PC /ラップトップ用のデスクトップ最適化レイアウトを設定することができます。

これを実行するためにいくつか遊んでいるかもしれませんが、私はこれを試すのに便利な2010年のインストールはありません。

関連する問題