首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角- NetworkError: 404未找到-NetworkError

角- NetworkError: 404未找到-NetworkError
EN

Stack Overflow用户
提问于 2014-12-25 10:17:22
回答 2查看 3.9K关注 0票数 0

我将把我的字符串发布到api,但是每次我都有这样的错误。不过,被小提琴手弄得很好

代码语言:javascript
复制
NetworkError: 404 Not Found - http://localhost:3094/api/Controller/Action/

这是我的js密码

代码语言:javascript
复制
 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;

和服务器代码

代码语言:javascript
复制
 [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);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-25 11:36:02

404在这种情况下是正常的。您正在从角投递一个具有id属性的对象,但是在服务器端,您需要一个string属性。因此,.net无法与动作相匹配。

您需要更改服务器端操作参数或角发送数据。

代码语言:javascript
复制
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);
}
票数 0
EN

Stack Overflow用户

发布于 2014-12-25 13:23:07

我认为404与路由引擎有更多的关系,无法在控制器上找到相关的动作方法。您可以使用Route属性来确认它,如

代码语言:javascript
复制
[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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27646277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档