2012-05-09 77 views
0

我有一個MVC3網站,顯示頁面頂部標題上的網站名稱。這來自site.master頁面。我想將該靜態標題名稱轉換爲頁面頂部的下拉列表。選擇更改 - 我想顯示一個不同的site.master頁面(內容視圖完全來自不同的控制器比原來的選擇)。我怎樣才能在MVC3網絡應用程序中做到這一點?MVC3 - 更改佈局基於下拉選擇更新

+4

你試過了什麼?你堅持什麼?你知道如何添加下拉控件嗎?你知道如何將它綁定到事件嗎?..... – c0deNinja

回答

3

提到默認情況下,同樣的代碼中設置佈局直接的所有頁面使用的MVC3 Web應用程序項目視圖目錄下直接找到_ViewStart.cshtml 。這將指向_Layout.cshtml(mvc的母版頁)在Views/Shared目錄下。

在相應的View目錄下放置個人_ViewStart.cshtml將覆蓋默認行爲。因此,如果你以家庭視圖爲例,你將有一個_ViewStart.cshtmlViews/Home

這裏_ViewStart.cshtml將返回它的具體佈局;因此,代碼是

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

正如你可以看到您將創建自己的佈局主人叫_HomeLayout.cshtml,並將其放置Views/Shared目錄下。根據你的需要,你會重複這個視圖你有多少(如果你沒有指定一個,它將始終使用默認值)。看看下面給出的屏幕截圖。根據您的需求,您可以在下拉菜單中選擇不同的視圖。

enter image description here

1

很容易,選擇更改將窗口重定向到在控制器上執行特定操作方法的新url。

我沒有實際的代碼示例,但讓我嘗試用簡單的英語

對於例如解釋默認加載索引的操作方法HomeController,索引視圖使用「site.master」。現在在選擇更改上,您將瀏覽器重定向到不同的URL(「NewHome/Index」)。 指數下NewHomeController視圖將有一個不同的母版頁,您可以通過以下方式設置

下面放

@{ 
    Layout = "~/Views/Shared/_NewHomeLayout.cshtml"; 
} 
  1. 代碼到一個新的_ViewStart.cshtml文件根據「NewHome」查看文件夾。
  2. newhome上索引視圖,你上面