Хобрук: Ваш путь к мастерству в программировании

Действие PATCH веб-API OdataController

Я работаю над созданием контроллеров CRUD OData (ODataController). Для этого запроса

ИСПРАВЛЕНИЕ http://localhost/MySite/api/MyData(1)

действие PATCH, объявленное ниже, работает. Модель имеет одно свойство, отмеченное KeyAttribute

public async Task<IHttpActionResult> Patch(
    [FromODataUri] int key, 
    Delta<MyModel> modelDelta)

Этот не работает (обратите внимание, что я назвал параметр id вместо key). Возвращает 404 - ресурс не найден:

public async Task<IHttpActionResult> Patch(
   [FromODataUri] int id, // <--- invalid argument name?
   Delta<MyModel> modelDelta)

Я также пытался пометить это действие с помощью [ODataRoute("({id})")], но я получаю это

Шаблон пути "({id})" в действии "Исправить" в контроллере "MyData" не является допустимым шаблоном пути OData. В URL-адресе запроса обнаружен пустой сегмент. Убедитесь, что указан действительный URL-адрес запроса.

Есть ли у меня возможность указывать конкретные параметры? И особенно когда у меня может быть 2-3 ключа/параметра. Я хочу иметь возможность использовать patch как

 public async Task<IHttpActionResult> Patch(
     [FromODataUri] int id1, 
     [FromODataUri] int id2, 
     Delta<MyModel> modelDelta)

Ответы:


1

Ваш класс объявлен следующим образом:

//Must declare this attribute to relative ODataRoute Works
[ODataRoutePrefix("MyData")]
public class MyDataController : ODataController

....

в противном случае должен объявить маршрут

[ODataRoute("MyData({id})")]
...
04.02.2018
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.