Я создал контроллер «Утилиты», который не привязан к какой-либо модели и содержит только несвязанные функции.
Я хотел бы быть в состоянии назвать это через URL вроде следующего:
OData/Утилиты/SomeMethod()OData v4 несвязанная функция с настраиваемой маршрутизацией
Прямо сейчас я должен назвать это так:
OData/SomeMethod()
Как создать собственный маршрут для «утилит»?
Я пробовал:
[ODataRoutePrefix("Utilities")]
public class UtilitiesController : ODataController
Я также попытался:
[ODataRoute("Utilities/SomeMethod()"]
public string SomeMethod()
Но оба они бросают ошибку:
«Шаблон пути 'Утилиты/SomeMethod()' на Действие «SomeMethod» в контроллере «Утилиты» не является допустимым шаблоном пути OData. Ресурс не найден для сегмента «Утилиты».
Это не работает. Если вы попытаетесь вызвать URL-адрес «/ odata/Utilities/SomeMethod()», вы получите 500 Internal Server Error. Если вы попытаетесь вызвать «/ odata/SomeMethod()», то он войдет в CustomControllerSelector, но один раз туда не перейдет к правильному контроллеру. Вы получите «Тип не найден, который соответствует контроллеру с именем UtilitiesController». Контроллер существует. Кроме того, это все равно не позволит вам иметь «/ odata/Utilities/SomeMethod()», что и я пытаюсь сделать. – goroth