Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将来自不同控制器的视图分组_C#_Asp.net Mvc - Fatal编程技术网

C# 将来自不同控制器的视图分组

C# 将来自不同控制器的视图分组,c#,asp.net-mvc,C#,Asp.net Mvc,我有一些控制器有一些共同点,因此我想将它们的视图分组到一个文件夹结构中。像这样的 Controller /Reservations /Logement /Suites /SuiteCategories View /hotel /Reservations /Index

我有一些控制器有一些共同点,因此我想将它们的视图分组到一个文件夹结构中。像这样的

    Controller
              /Reservations
              /Logement
              /Suites
              /SuiteCategories
    View
        /hotel
              /Reservations
                           /Index
                           /Edit
                           /Delete
              /Logement
                          /Index
                           /Edit
                           /Delete
              /Suites
                           /Index
                           /Edit
                           /Delete
我将其注册到路由引擎,但没有任何结果

       routes.MapRoute(
          name: "hotels",
          url: "hotels/SuiteCategory/{controller}/{action}/{id}",
          defaults: new { controller = "SuiteCategory", action = "Index", id = UrlParameter.Optional }
      );

你建议我怎么做?

你应该在这里使用一个区域。区域可用于将具有相关功能的控制器分组。他们有自己的文件夹,其结构类似于MVC项目。你已经得到了一个自定义路由和一个文件夹,就像你喜欢的那样。

我找到了一种不使用区域的方法。我添加了一条路线,使之成为最上面的路线

   routes.MapRoute( name: "hotels", 
                    url: "hotels/{controller}/{action}/{id}", 
                    defaults: new { controller = "SuiteCategory", 
                    action = "Index", id = UrlParameter.Optional } ); 

这很好。

路由与ASP.NET MVC如何定位视图无关。也许你需要一个地方?@UfukHacıoğulları,谢谢。如果我要使用一个区域,你能描述一下它将如何满足需要吗?我是微软mvc的新手。从我所读到的有关该领域的内容来看,它无法达到设计要求。@Wale尝试创建一个。如果你对自己的设计过于严格,你可以试试别的。这是ASP.NET MVC中支持的项目组织方式。我找到了一种不用区域的解决方法。我添加了一条路线,使之成为最上面的路线<代码>routes.MapRoute(名称:“hotels”,url:“hotels/{controller}/{action}/{id}”,默认值:new{controller=“SuiteCategory”,action=“Index”,id=UrlParameter.Optional})这个很好用。@Wale你应该把它作为一个答案发布,这样其他人就可以看到它。如果我还有一个这样的文件夹:hotels/folder1/folder2/folder3/Index怎么办?我知道这行不通。附近有工作吗?