2016-07-05 8 views
0

私はODataコントローラを持っています。 DeleteメソッドとPatchメソッドはうまくいっていますが、私はPostメソッドにヒットできません。私はオブジェクト全体を投稿しなければならないのですか、または単にキーを投稿していますか?ODataコントローラのポストメソッドが見つかりません

うまく機能パッチ要求:

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

404を返すPOSTリクエスト:

私は送っていないのです

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

任意のボディwポスト要求番目

コントローラー:

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"" 
     }"; 
関連する問題