【发布时间】:2016-06-29 09:35:30
【问题描述】:
我有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);
}
}
从angularJSapp我发送请求:
$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 Method not allowed。
【问题讨论】:
-
使用 fiddler 看看实际的请求是什么样的,也许你会在那里发现你的错误。
标签: c# angularjs asp.net-web-api