1

我需要我的ASP.NET MVC5視圖結構來反映我的控制器的結構。基於控制器結構的MVC自定義視圖路由


我的申請的控制器具有以下結構:

Controllers 
|--- Main 
| |--- HomeController.cs 
|--- User 
| |--- HomeController.cs 
| |--- SettingsController.cs 
|--- Admin 
| |--- HomeController.cs 
| |--- ManageController.cs 

控制器結構根據用戶類型和Main控制器到所有用戶訪問。我的網址是這樣的:

  • /Main/Home(默認)
  • /User/Settings
  • /Admin/Manage/Users

但你可以看到所有命名空間有一個HomeController,但是當我想創建,例如,User/HomeController的索引視圖將被放置在Views/Home/Index.cshtml之內。但我實際上需要這種觀點:Views/User/Home/Index.cshtml。下面是我需要結構化視圖的示例結構。

Views 
|--- Main 
| |--- Home 
| | |--- Index.cshtml 
| | |--- Contact.cshtml 
|--- User 
| |--- Home 
| | |--- Index.cshtml 
| |--- Settings 
| | |--- Index.cshtml 
|--- Admin 
| |--- Home 
| | |--- Index.cshtml 
| |--- Manage 
| | |--- Index.cshtml 
| | |--- Users.cshtml 

我試圖用一個自定義RazorViewEngine當然所有的例子我能找到(like this one)不會對我的情況下工作。有沒有辦法通過自定義路由來實現這個特定的結構?

+0

地區將是您的問題的良好解決方案。你可以在谷歌中獲得大量的保持鏈接。 –

回答

1

正如其他人所指出的那樣,你可以使用領域來構建自己的網站(前提是你只需要1級)。

如果你想要多個級別的控制器(/section1/sectiona/SomeController.cs),那麼看看MvcCodeRouting

0

您可以指定你需要使用默認的任何路徑,而不是如果區域不爲你工作:

return View("user/home/index", model);