Как изменить маршрут, чтобы использовать другой путь к другой папке / контроллеру?
Моя текущая структура приложения выглядит следующим образом:
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