Моя проблема похожа на Маршрутизация веб-API: найдено несколько типов контроллеров, соответствующих URL-адресу , но я хочу сохранить их в отдельных контроллерах.
Из комментариев: 2 предыдущих ответа хорошие обходные пути, но не решают реальную проблему, которую я пытаюсь решить.
URL-адреса, которые я составляю, похожи на вложенные каталоги в файловой системе ИЛИ очень похожи на URL-адреса Firebase.
/BiggestSet/{BiggestSetCode}/Subset1/{Subset1Code}/SubsetOfSubset1/{SubsetOfSubset1}
... et c полностью вниз туда, где когда-либо дерево останавливается. Думайте об этом как о дереве данных.
/Collection/{Instance}/Collection/{Instance}
Проблема, с которой я столкнулся, заключается в том, что на уровне / Collection я также хочу предоставить определенные c операции уровня сбора. Например, Добавить, выполнить поиск и указать другие коллекции. c Операции Collection / ProccessData
Collection Controller:
/Collection/Add
/Collection/ProcessDataOnTheColleciton
Instance Controller:
/Collection/{InstanceCode}
/Collection/{InstanceCode}/ProcessOnTheInstance
Проблема, с которой я столкнулся, заключается в столкновении Collection / ProcessData с экземпляром Collection / {InstanceCode}
ПРИМЕЧАНИЕ: 1 является параметром, а другой - константой.
Если вы настраиваете контроллеры так, чтобы набор и экземпляр находились в одном контроллере. / {InstanceCode} не обрабатывает sh с / ProcessData
НО
Если вы настроили так, чтобы контроллеры были разделены на логические функции, WebAPI выдает ошибку. Было найдено несколько типов контроллеров, которые сопоставьте URL.
Кто-нибудь знает, как изменить маршрутизацию атрибутов, чтобы они как-то вели себя так, как если бы они находились в одном контроллере, ИЛИ для определения приоритета константы над параметром на контроллерах?