Когда я пытаюсь использовать сегмент третьего уровня с атрибутом [ODataRoutePrefix]
, возникает такая ошибка:
Шаблон пути «[ШАБЛОН]» для действия «Получить» в контроллере «ИМЯ-КОНТРОЛЛЕРА» не является допустимым шаблоном пути OData. Обнаружен неразрешенный сегмент пути «[LAST-SEGMENT]» в шаблоне пути OData «[TEMPLATE]».
Подробности
- ODataRoutePrefix для родительского сегмента, который работает:
[ODataRoutePrefix("lawsuits/{parentId}/depositsGuarantees")]
- ODataRoutePrefix для нового контроллера, который НЕ РАБОТАЕТ:
[ODataRoutePrefix("lawsuits/{parentId}/depositsGuarantees/{subResourceId}/customFields")]
- Сообщение об ошибке при запуске API (
config.EnsureInitialized()
): Шаблон пути 'lawsuits/{parentId}/depositsGuarantees/{subResourceId}/customFields' в действии 'Get' в контроллере 'LawsuitDepositGuaranteeCustomFields' не является допустимым шаблоном пути OData. Обнаружен неразрешенный сегмент пути «customFields» в шаблоне пути OData «lawsuits/{parentId}/depositsGuarantees/{subResourceId}/customFields».
Дополнительная информация
- Методы действия должным образом ожидают параметров, определенных в префиксе маршрута. Пример:
public IHttpActionResult Get(int parentId, int subResourceId)
{
// [...]
}
- Хотя он жаловался, что «найден неразрешенный сегмент пути «customFields», тот же сегмент работает для других существующих контроллеров с префиксом, подобным следующему:
[ODataRoutePrefix("lawsuits/{parentId}/customFields")]
, что означает, что в OData зарегистрирована модель для сегмента «customFields».
Затронутые сборки
Библиотека OData WebApi 6.0.0