繁体   English   中英

这是什么问题? webapi + angular + post

[英]what's the issue here?? webapi + angular + post

发生了一些奇怪的事情....我真的不明白为什么......这篇文章只有在将id参数类型从int更改为object时才有效。

我知道最好的方法是在url中设置值...但是我试图避免这个...我的偏好是将值发布为json

public IHttpActionResult Gettest(int id)=不行!

{“Message”:“找不到与请求URI匹配的HTTP资源' http:// localhost:23052 / api / testAPI / Gettest '。”,“MessageDetail”:“在控制器'testAPI'上找不到任何操作匹配请求。“}

public IHttpActionResult Gettest(object id)=它的工作原理

这很好

我做错了什么?....我试图在服务器/客户端将参数名称从“id”更改为“x”,我得到了相同的结果。

config.Routes.MapHttpRoute("DefaultActionApi", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional });

WebApiConfig.cs

     [HttpPost]
    public IHttpActionResult Gettest(int id)
    {
        test test = db.tests.Find(id);
        if (test == null)
        {
            return NotFound();
        }

        return Ok(test);
    }

testAPIController.cs

        $http.post("/api/testAPI/Gettest", id)
    .success(function (result) {


        $scope.test = result;


    }).error(function (result) {
        console.log(result);
    });

角柱

将您的$ http请求更改为以下。 无需编写动作方法名称,它只会被控制器名称调用。 Web api基于HTTP VERBS工作,所以只需用以下代码替换您的请求:

$http.post("/api/testAPI/"+ id)
        .success(function (result) { 
            $scope.test = result;
        }).error(function (result) {
            console.log(result);
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM