Я использую Abp Boilerplate ASP.Net Core и Angular. Я реализовал odata в соответствии с документом odata AspNetCore Integration, и он отлично работает при получении данных. У меня проблема из-за того, что при использовании метода patch для внесения изменений параметр дельты в методе patch в моем контроллере пуст, он не перечисляет никаких переданных изменений. Значения, которые я редактирую, являются двойными и Content-Type в запросе включает application / json. Прикрепленное изображение показывает запрос и изменяет полезную нагрузку.
Проблема, указанная в github.com/OData/WebApi/issues/1208, похоже, не помогает решить проблему, которую я пытаюсь решить.
Я воспроизвел ту же проблему, используя пример шаблона odata aspnet, который можно найти здесь: github.com/aspnetboilerplate/sample-odata Прикрепленное изображение показывает запросы на исправление, сделанные для обновления объекта Persons. Обычно в функции Patch параметр Delta не перечисляет никаких изменений, внесенных в запрос. Вот фрагмент из контроллера: public override Task <IActionResult> Patch ([FromODataUri] int key, Delta <Person> entity) {return base.Patch (key, entity); }
Вы можете отправить новый выпуск на github.com/OData/WebApi.
Благодаря jbuschke добавление атрибута [FromBody] к параметру Delta исправляет проблему.
Отлично. Отправьте это как ответ.





Добавьте атрибут [FromBody] к параметру Delta<>.
public override Task<IActionResult> Patch([FromODataUri] int key, [FromBody] Delta<Person> entity)
{
return base.Patch(key, entity);
}
Исправлено в ABP v3.8.3 и aspnetboilerplate / образец-odata.
Привет @aaron: Это не имеет ничего общего с вопросом, просто из интереса: используете ли вы базовый контроллер со всеми стандартными HTTP-действиями (Get, Post, Patch, Delete)?
Это от AbpODataEntityController.
благодарю вас! Это была информация, которую я искал
Открытый выпуск: github.com/OData/WebApi/issues/1208