从不同的控制器分组视图

时间:2014-01-08 12:25:17

标签: c# asp.net-mvc

我有一些控制器有一些共同之处,因此我想将他们的视图分组到一个文件夹结构中。这样的事情。

    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 }
      );

你建议我做什么?

2 个答案:

答案 0 :(得分:1)

你应该在这里使用一个区域。区域可用于对具有相关功能的控制器进行分组。它们有自己的文件夹,其结构与MVC项目类似。您you create an area时已经按照自己的意愿获得了自定义路线和文件夹。

答案 1 :(得分:1)

我没有使用某个区域就找到了解决方法。我添加了一条路线,使其成为最顶层的路线。

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

这很好用。