0

ページの上部ヘッダーに Web サイト名を表示する MVC3 Web サイトがあります。これは、site.master ページからのものです。その静的ヘッダー名をページ上部のドロップダウンに変換したいと思います。選択が変更されたとき - 別の site.master ページを表示したい (コンテンツ ビューは、元の選択とは完全に異なるコントローラーから取得されます)。MVC3 Web アプリでこれを行うにはどうすればよいですか?

4

2 に答える 2

3

デフォルトでは、すべてのページが_ViewStart.cshtmlMVC3 Web アプリケーション プロジェクトの Views ディレクトリの直下にある を使用します。これは、ディレクトリ_Layout.cshtmlの下の (mvc のマスター ページ) を指しますViews/Shared

対応するビュー ディレクトリの下に Individual を配置_ViewStart.cshtmlすると、デフォルトの動作がオーバーライドされます。したがって、ホームビューを例にとると、_ViewStart.cshtml下にありますViews/Home

ここで_ViewStart.cshtmlは、特定のレイアウトが返されます。したがって、コードは

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

ご覧のとおり、独自のレイアウト マスターを作成し、それをディレクトリ_HomeLayout.cshtmlの下に配置します。Views/Shared必要に応じて、これをビューの数だけ繰り返します (ビューを指定しない場合は、常にデフォルトのビューが使用されます)。以下のスクリーンショットをご覧ください。後で必要に応じて、ドロップダウンを使用してさまざまなビューを選択できます。

ここに画像の説明を入力

于 2012-05-09T08:29:02.443 に答える
1

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

実際のコード例はありませんが、わかりやすい英語で説明してみましょう

たとえば、デフォルトでHomeControllerのインデックスアクションメソッドをロードする場合、インデックスビューは「site.master」を使用します。選択を変更したら、ブラウザを別のURL( " NewHome / Index ")にリダイレクトします。NewHomeControllerの下のインデックスビューには、次の方法で設定できる別のマスターページがあります。

以下のコードを入れてください

@{
     Layout = "~/Views/Shared/_NewHomeLayout.cshtml";
 }
  1. 「 NewHome」ビューフォルダ の下の新しい_ViewStart.cshtmlファイルに。
  2. NewHomeインデックスビューで、上記と同じコードを使用してレイアウトを直接設定します
于 2012-05-09T06:19:21.393 に答える