找不到 OData 控制器上的发布方法
本文关键字:方法 布方法 OData 控制器 找不到 | 更新日期: 2023-09-27 17:55:24
我有一个OData控制器。删除和修补方法效果很好,但是我无法点击 Post 方法。我必须发布整个对象还是只发布密钥?
运行良好的补丁请求:
补丁 http://localhost:50161/odata/Carousel(3)
返回 404 的 Post 请求:
邮政 http://localhost:50161/odata/Carousel(3)
我没有向任何带有帖子请求的正文发送
控制器:
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);
}
}
如果要发布实体,则应发布到实体集,例如.../轮播
和有效载荷,例如:
string payload = @"{
""ID"": 3,
""Name"": ""def""
}";