Как изменить маршрут, чтобы использовать другой путь к другой папке / контроллеру?

Моя текущая структура приложения выглядит следующим образом:

Controller
    UserAdminController
    GroupsAdminController

Я хочу изменить его так, чтобы для каждой группы администрирования у меня была своя папка. Например:

Controller
     UserAdmin
         -UserAdminController
     GroupAdmin 
         -GroupAdminController

И, на мой взгляд, я хочу указать на конкретное действие контроллера:

@Html.ActionLink("User Administration", "Index","/UserAdmin/UserAdmin")
@Html.ActionLink("Group Administration", "Index", "/GroupAdmin/GroupAdmin")

Как мне это сделать?

1 ответ

Вы можете сделать это разными способами, но я предлагаю прочитать и использовать Области.

Areas
     UserAdmin
         Controller
             -UserAdminController
     GroupAdmin
         Controller 
             -GroupAdminController

Кроме того, ActionLink имеет много перегрузок, которые вы можете использовать для нужд ("текст", "действие", "контроллер", значения маршрута) следующим образом:

@Html.ActionLink("User Administration", "Index","UserAdmin", new { area="UserAdmin" })
@Html.ActionLink("Group Administration", "Index", "GroupAdmin", new { area="GroupAdmin" })

Другой вариант будет иметь одну область для администратора и только два контроллера. Имейте в виду, что каждый контроллер получает свою собственную папку для представлений:

Areas
     Admin
         Controllers
             UserController
             GroupController
         Views
             User
                 Index.cshtml
             Group
                 Index.cshtml

Тогда ваши ActionLinks будут:

@Html.ActionLink("User Administration", "Index","User", new { area="Admin" })
@Html.ActionLink("Group Administration", "Index", "Group", new { area="Admin" })

Ссылки тоже были бы приятнее ИМХО

/Admin/User
/Admin/Group
Другие вопросы по тегам