我有API controller
方法:
[Route("campaigns")]
[HttpDelete]
public async Task<IHttpActionResult> Delete(string brandId,string campaignId)
{
try
{
var merchantId = CurrentUserInfo.GetMerchantId();
await _service.DeleteAsync(merchantId, brandId, campaignId);
return StatusCode(HttpStatusCode.NoContent);
}
catch (Exception e)
{
Log(e);
return BadRequest(e.Message);
}
}
从angularJS
app
我发送请求:
$http.delete(config.resourceNames.campaign, { params: { brandId: brandId, campaignId: campaignId } })
.then(function (response) {
return response;
}, function (error) {
return error;
});
配置文件:
var resourceNames = {
campaign: '/api/campaigns'
};
因此路由有效。
但请求始终返回404 NOT FOUND
。
我通过Swagger
进行了检查,DELETE
方法在列表中可见,但是当我尝试使用它时。它还会返回NOT FOUND
。
为什么这样讨价还价?
修改
使用“ISS Express”时出现错误404,但当我切换到“Local ISS”时,错误更改为405方法不允许。
答案 0 :(得分:0)
可能你需要写:
[Route("api/campaigns")]
答案 1 :(得分:0)
我遇到过这种情况。虽然我不确定其根本原因是什么,但我可以说命名路线有很大帮助。试试这个:
[Route("campaigns", Name = "delete-campaign")]