Я пытаюсь создать маршруты, которые соответствуют структуре древовидной навигационной системы, т.е. я хочу включить в свой маршрут весь путь в дереве. Так что, если бы у меня было дерево, которое выглядело так
- Компьютеры
- Программное обеспечение
- Оборудование
Тогда я бы хотел иметь маршруты, которые выглядят так:
- site.com / Каталог / Компьютеры / Программное обеспечение / графика
Это само по себе не сложно и может быть поймано маршрутом, который выглядит следующим образом
Однако я хочу иметь возможность добавлять информацию о продукте в конце этого URL, что-то вроде этого
- site.com / Каталог / Компьютеры / Программное обеспечение / графика / название = Photoshop
Что означало бы, что я буду запрашивать маршруты, которые были определены, как в следующих примерах
- site.com / {* категории} / название = {имя}
- site.com / {*} категории
Однако первый из этих маршрутов недействителен, так как после жадного параметра, такого как {* category}, ничего не может появиться, поэтому я немного застрял. Я думал о реализации маршрутов регулярных выражений или, возможно, использовать IRouteContraint, чтобы обойти это, но я не могу придумать достойного решения, которое позволило бы мне также использовать Html.ActionLink (...) метод генерации исходящих URL-адресов, которые заполнены как {* category}, так и {name}
Любой совет очень ценится!
Некоторые из вас, возможно, видели вчера такой же вопрос у меня, но он был удален мной, поскольку с тех пор я обдумал его больше, а старый вопрос содержал неполные описания моей проблемы
ОБНОВЛЕНИЕ 2008/11/26 Я разместил решение в http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html