我有一条DELETE
路线,如下所示:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService(string id)
{
return await _repo.DeleteServiceAsync(id);
}
我还需要在此路由上支持一个[FromBody]
参数,如下所示:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService([FromBody] ServiceEntity service, string id)
{
if(service == null)
return await _repo.DeleteServiceAsync(id);
else
return await _repo.DeleteServiceWithEntityAsync(id, service);
}
但是,由于AllowEmptyInputInBodyModelBinding,这不起作用,我不想将其设置为true;在所有其他路由/端点中,都希望使用默认行为AllowEmptyInputInBodyModelBinding == false
。
我可以有两条不同的路线,一条带有body参数,一条没有,但是会产生匹配的路线,而且没有命中任何端点:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService(string id)
{
return await _repo.DeleteServiceAsync(id);
}
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteServiceWithEntity([FromBody] ServiceEntity service, string id)
{
return await _repo.DeleteServiceWithEntityAsync(id, service);
}
获得我想要的行为的最佳方法是什么?我无法添加单独的终结点,因为我需要遵守现有API的规范。