Создать подпапки в контроллере - PullRequest
10 голосов
/ 17 ноября 2009

Как я могу сделать в ASP.NET MVC 1, чтобы взять подпапки. Например, взяв следующую структуру папок на контроллере:

/Controller
  /Blog
     ViewsController.cs
     ArticlesController.cs
  /Customers
     SalesController.cs
     ProductsController.cs
  HomeController.cs

Я хотел бы иметь следующую структуру папок, каждое представление находило ваш контроллер:

/Views
  /Blog
     /Views
        Index.aspx
        Admin.aspx
        Show.aspx
     /Articles
        Show.aspx
        Admin.aspx
  /Customers
     /Sales
        Index.aspx
        Totals.aspx
     /Products
        Index.aspx
        Promotions.aspx
  /Home
     Index.aspx

Ответы [ 4 ]

8 голосов
/ 17 ноября 2009

Эта функция была добавлена ​​в ASP.NET MVC 2.0. Это называется Области .

4 голосов
/ 17 ноября 2009

Вы можете сделать это, используя Routes, т.е.

routes.MapAreaRoute("Blogs", 
        "Blog/Views/{controller}/{action}/{id}", 
        new { controller = "Views", action = "Index", id = "" });

Это может соответствовать вашим потребностям, учитывая данные выше.

3 голосов
/ 26 сентября 2012

В MVC 2 или выше вам просто нужно щелкнуть правой кнопкой мыши на проекте, затем навести курсор мыши на add, затем нажать Area и ввести имя области. Все автоматически создается для вас!

1 голос
/ 17 ноября 2009

Как отметил Дарин, «Области» являются «намеченным» способом для разработчиков. Если вы можете подождать до февраля, вы можете рассмотреть возможность предварительного просмотра MVC 2. Тем не менее, разработчики делали подобные вещи до появления Области с MVC 2. Если вам нужно более быстрое решение, вы можете поместить свои контроллеры в структуру папок, которую вы указали выше. Предполагая, что контроллеры располагаются в пространстве имен в соответствии с их папкой (т.е. Project.Controllers.Blog ), вы просто добавляете в конец дополнительный параметр, который задает пространство имен для контроллера при инициализации ваших маршрутов.

Например:

routes.MapAreaRoute("Blog", 
    "Blog/{controller}/{action}/{id}", 
    new { controller = "Articles", action = "Index", id = "" },
    "Project.Controllers.Blog");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...