2016-07-05 4 views
0

OData 컨트롤러가 있습니다. Delete 및 Patch 메서드는 훌륭하게 작동하지만 Post 메서드를 사용할 수는 없습니다. 전체 개체를 게시해야합니까, 아니면 그냥 키를 게시하고 있습니까? 잘 작동OData 컨트롤러의 게시 메서드를 찾을 수 없습니다.

패치 요청 :

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

404 반환 POST 요청 : 나는 http://localhost:50161/odata/Carousel(3)

전송하고 있지 않다

POST를 어떤 몸이라도 POST 요청 번째

컨트롤러 :

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"" 
     }"; 
관련 문제