У меня есть - я думаю - сложный URL для работы в ASP MVC 1.0:
Для всех моих действий в большинстве контроллеров все время требуются два параметра: учетная запись и проект. Это поверх требований каждого Акции. Это означает, что типичный URL выглядит следующим образом:
http://abcd.com/myaccount/projects/project_id/sites/edit/12
В этом примере:
myaccount - это имя учетной записи. проектов могут быть контроллерами, другие варианты, такие как местоположения , сотрудников . project_id - это идентификатор проекта в myaccount , сайтов может быть контроллером, другие варианты, такие как персонал или платежей . edit - это действие, а 12 - идентификатор редактируемого сайта.
(надеюсь, это достаточно ясно)
Теперь один из вариантов - создать маршрут и передать project_id и account во все действия контроллеров, добавив два дополнительных параметра ко всем действиям. Это не очень желательно, и я также не уверен, что два контроллера (проекты и сайты) будут работать здесь.
Моя идеальная ситуация - использовать какой-то контекст, который путешествует с вызовом действия контроллера и хранить там project_id и myaccount. Остальные параметры могут быть обработаны обычным образом, например:
// sitescontroller
public ActionResult Edit(string id)
{
string account = somecontext["account"];
string project_id = somecontext["project"];
// do stuff
}
Есть идеи, как и где это может произойти? Кроме того, как это будет работать с ActionLink (т.е. генерировать правильные ссылки на основе этого контекста)?
Спасибо!