我要将我的字符串发布到api,但每次我都有这样的错误。然而,通过提琴手它工作正常
NetworkError: 404 Not Found - http://localhost:3094/api/Controller/Action/
这是我的js代码
var deferred = $q.defer();
$http.post('http://localhost:3094/api/Country/GetSelectionCount/' ,
{id:selection})
.success(function (data, status, headers, config) {
deferred.resolve(data);
})
.error(function (data, status, headers, config) {
deferred.reject(data);
});
return deferred.promise;
和服务器代码
[AcceptVerbs("GET")]
[ActionName("GetSelectionCount")]
public IHttpActionResult GetSelectionCount(string id)
{
if (String.IsNullOrWhiteSpace(id))
return NotFound();
var result= (from m in db.Products
where m.ProductName.Contains(id)
select m).Count();
return Ok(result);
}
答案 0 :(得分:0)
您需要更改服务器端操作参数或角度发布数据
public class MyModel
{
public string id {get;set;}
}
[AcceptVerbs("POST")]
[ActionName("GetSelectionCount")]
public IHttpActionResult GetSelectionCount([FromBody] MyModel model)
{
if (model == null || String.IsNullOrWhiteSpace(model.id))
return NotFound();
var result= (from m in db.Products
where m.ProductName.Contains(model.id)
select m).Count();
return Ok(result);
}
答案 1 :(得分:0)
我认为404更多地与路由引擎无法在控制器上找到相关的操作方法有关。您可以使用Route
属性(例如
[AcceptVerbs("POST")]
[ActionName("GetSelectionCount")]
[Route("api/country/GetSelectionCount/")]
public IHttpActionResult GetSelectionCount(string id)
{
if (String.IsNullOrWhiteSpace(id))
return NotFound();
var result= (from m in db.Products
where m.ProductName.Contains(id)
select m).Count();
return Ok(result);
}