1

私のコントローラの構造を反映するために私のASP.NET MVC5ビュー構造が必要です。私のアプリケーションのコントローラの構造に基づいたMVCカスタムビュールーティング


コントローラは、以下の構造を有する:

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

コントローラ構造は、ユーザーのタイプに基づいて、およびMainコントローラは、すべてのユーザーがアクセスしていますさ。私のURLは、このようなものです:

  • /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

の領域が問題の良い解決策になります。あなたはgoogleでたくさんの保持的なリンクを得ることができます。 –

答えて

1

他の人が指摘したように、あなたのウェブサイトを構築するエリアを使用することができます(あなたが唯一の希望提供1レベル)。

複数のレベルのコントローラ(/section1/sectiona/SomeController.cs)が必要な場合は、MvcCodeRoutingをご覧ください。

2

私はあなたが地域を探していると信じています。

エリアはMVC 4に有りましたそして、MVC 5.

Here you can find a detailsに違いはありません。

0

あなたは区域があなたのために動作しない場合は、代わりにデフォルトを使用する必要があるものは何でもパスを指定することができます

return View("user/home/index", model); 
関連する問題