2012-05-09 15 views
0

MVC3のWebサイトには、ページの上部ヘッダーにWebサイトの名前が表示されています。これはsite.masterページから来ます。私は静的なヘッダー名をページの上のドロップダウンに変換したいと思います。選択が変更されました - 別のsite.masterページを表示したいと思います(コンテンツビューは元の選択肢とは別のコントローラから完全に来ています)。 MVC3 Webアプリケーションでこれを行うにはどうすればいいですか?MVC3 - ドロップダウン選択の更新に基づいてレイアウトを変更します

+4

何を試しましたか?あなたは何をしていますか?ドロップダウンコントロールを追加する方法を知っていますか?あなたはそれをイベントに結びつける方法を知っていますか?..... – c0deNinja

答えて

3

上記の同じコードで直接レイアウトを設定。これはViews/Sharedディレクトリの_Layout.cshtml(mvcのマスターページ)を指します。

個々の_ViewStart.cshtmlを対応するViewディレクトリに配置すると、デフォルトの動作が上書きされます。したがって、ホームビューを例に取ると、Views/Home

ここに_ViewStart.cshtmlがあります。具体的なレイアウトは、_ViewStart.cshtmlです。あなたは_HomeLayout.cshtmlと呼ばれる非常に独自のレイアウトのマスターを作成し、Views/Sharedディレクトリの下に置きますので、見ることができるようにコードが

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

です。あなたのニーズに応じて、あなたが持っているビューの数にこれを繰り返します(指定しない場合は、常にデフォルトのものを使用します)。下記のスクリーンショットをご覧ください。必要に応じて、後でドロップダウンを使用してさまざまなビューを選択することができます。

enter image description here

1

選択肢の変更では、コントローラを特定のアクションメソッドを実行する新しいURLにウィンドウをリダイレクトするのは簡単です。

私は、実際のコード例を持っていますが、私は、例えばのために平易な英語

に説明しようとすることはできません。既定では、インデックスアクションメソッドHomeControllerを読み込み、インデックスビューは "サイト.master"を使用します。今度は選択を変更したら、ブラウザを別のURLにリダイレクトします( "NewHome/Index")。 インデックスNewHomeControllerビューでは、

が新しい_ViewStart.cshtmlファイルに

@{ 
    Layout = "~/Views/Shared/_NewHomeLayout.cshtml"; 
} 
  1. 下のコードを入れて、次の方法で設定することができます別のマスターページを、持っています"NewHome"ビューフォルダの下にあります。
  2. NewHomeインデックスビューでは、すべてのページが直接MVC3 Webアプリケーションプロジェクトのビューのディレクトリの下に_ViewStart.cshtmlを使用して、デフォルトで
関連する問題