ASP.NET MVC Routing - отслеживание параметров с помощью перенаправлений - PullRequest
0 голосов
/ 30 сентября 2011

Я работаю над своим первым реальным проектом ASP.NET MVC, и мне нужен небольшой совет.

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

Компания -> Отдел -> Пользователь

Сейчас мои URL выглядят так:

Companies/Index
Departments/Index?companyId=1
Users/Index?companyId=1&departmentId=2

Это становится сложным, потому что если мне придется перенаправить извозвращая список пользователей обратно в список отделов, я должен сделать что-то вроде:

return RedirectToAction("Index", "Departments", new { companyId = model.CompanyId });

По мере того, как вещи становятся все более вложенными, я должен начать передавать все больше и больше параметров, чтобы действия контроллера имели контекст, в котором онинужно.

Есть ли лучший способ структурировать маршруты для контроллеров, которые имеют «вложенную» функциональность, подобную этой?Должны ли они выглядеть так: компании / {id} / департаменты / {id} / пользователи?

Есть ли хорошая статья, на которую кто-то может связать меня, которая может дать несколько советов для передового опыта, когда дело доходит до этого

1 Ответ

0 голосов
/ 30 сентября 2011

Вам просто нужно добавить больше маршрутов на ваш Global.aspx, который сопоставляет URL-адреса с действиями с более конкретными маршрутами наверху. Вы можете иметь что-то вроде:

rout.MapRoute ("пользователь", "Пользователи / Индекс / {companyId} {департамент}", новый {контроллер = "", действие = ""}) маршруты.MapRoute ("отдел", "отделы / индекс / {companyId}", новый {контроллер = "", действие = ""}) route.MapRoute ("company", "Companies / Index", new {controller = "", action = ""})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...