Я пытаюсь создать маршруты, которые соответствуют структуре древовидной системы навигации, то есть я хочу включить весь путь в дерево в свой маршрут. Итак, если бы у меня было дерево, которое выглядело бы так
- Computers
- Software
- Development
- Графика
- Hardware
- CPU
- Видеокарты
- Software
Тогда я хотел бы иметь маршруты, которые выглядят так
- site.com/catalog/computers/software/graphics
Это само по себе несложно, и его можно поймать по маршруту, который выглядит следующим образом
- каталог / {* категории}
Однако я хочу иметь возможность добавлять информацию о продукте в конце этого URL-адреса, примерно так
- site.com/catalog/computers/software/graphics/title=Photoshop
Это означало бы, что мне потребовались бы маршруты, которые были определены как в следующих примерах.
- site.com/{*categories}/title={name}
- site.com/{*categories}
Однако первый из этих маршрутов недействителен, так как больше ничего не может появиться после жадного параметра, такого как {* категории}, так что я немного застрял. Я думал о реализации маршрутов регулярных выражений или, возможно, об использовании IRouteContraint, чтобы решить эту проблему, но я не могу придумать достойного решения, которое позволило бы мне также использовать Html.ActionLink (...) strong> метод для генерации URL-адресов outbount, которые заполняют как {* Categories}, так и {name}
Любой совет очень приветствуется!
Некоторые из вас, возможно, видели аналогичный вопрос от меня вчера, но он был удален мной, так как с тех пор я уделил ему больше внимания, а старый вопрос содержал неполное описание моей проблемы
ОБНОВЛЕНИЕ 2008/11/26 Я разместил решение по адресу http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html