2009-11-17 6 views
10

Как сделать 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

Вы можете сделать это с помощью маршрутов, т.е.

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

Казалось бы, чтобы удовлетворить ваши потребности, учитывая данные выше.

+1

. Обратите внимание, что MapAreaRoute был удален из MVC 2.0 и теперь был реализован по-другому. На шведском языке есть статья о том, что вы может проходить через Google Translate. http://weblogs.asp.net/mikaelsoderstrom/archive/2009/10/02/areor-i-asp-net-mvc-2.aspx. –

8

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

+0

на самом деле показывает ответ там, как это сделать в MVC1 тоже я верю голова. – bastijn

+0

Извините, я должен был сначала разъяснить, что я работаю с «MVC1. Есть ли какое-либо решение для« MVC1 » –

1

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

Например:

routes.MapAreaRoute("Blog", 
    "Blog/{controller}/{action}/{id}", 
    new { controller = "Articles", action = "Index", id = "" }, 
    "Project.Controllers.Blog"); 
3

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

Смежные вопросы