2016-07-05 2 views
0

У меня есть контроллер OData. Методы удаления и исправления работают отлично, но я не могу ударить по методу Post. Должен ли я публиковать весь объект или публиковать только ключ?Метод публикации на контроллере OData не найден

запрос патч, который хорошо работает:

PATCH http://localhost:50161/odata/Carousel(3)

Запрос сообщение, которое возвращает 404:

POST http://localhost:50161/odata/Carousel(3)

Я не посылая любое тело w Ith запроса поста

Контроллер:

public class CarouselController : ODataController<CarouselTableDto> 
{ 
    private readonly CarouselService _service; 

    public CarouselController(CarouselService service) 
    { 
     _service = service; 
    } 

    public class ModelRegistration : ModelRegistration<CarouselTableDto> { } 

    protected override IQueryable<CarouselTableDto> GetData() 
    { 
     return _service.QueryAll(); 
    } 

    public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<CarouselTableDto> data) 
    { 
     ChangePassivable(data, active => _service.SetIsActive(key, active)); 
     return StatusCode(HttpStatusCode.NoContent); 

    } 

    public async Task<IHttpActionResult> Delete([FromODataUri] int key) 
    { 
     _service.Delete(key); 
     return StatusCode(HttpStatusCode.NoContent); 
    } 

    [HttpPost] 
    public IHttpActionResult Post([FromODataUri] int key) 
    { 
     _service.Copy(key); 
     return StatusCode(HttpStatusCode.NoContent); 
    } 
} 

ответ

0

Если вы хотите разместить объект, вы должны размещать на набор сущностей, как .../Карусели

и полезная нагрузка, как:

 string payload = @"{ 
      ""ID"": 3, 
      ""Name"": ""def"" 
     }"; 
Смежные вопросы