[英]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.