【发布时间】:2017-05-17 02:08:42
【问题描述】:
发生了一些奇怪的事情......我真的不明白为什么...... 这篇文章只有在将 id 参数类型从 int 更改为 object 时才有效。
我知道最好的方法是在 url 中设置值......但是我试图避免这件事......我的偏好是将值发布为 json
public IHttpActionResult Gettest(int id) = 不工作!
{"Message":"找不到与请求 URI 'http://localhost:23052/api/testAPI/Gettest'匹配的 HTTP 资源。","MessageDetail":"在控制器 'testAPI' 上找不到与请求匹配的操作。"}
public IHttpActionResult Gettest(object id) = it works
运行良好
我做错了什么?....我尝试在服务器/客户端将参数名称从“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);
});
角柱
【问题讨论】:
-
如果你改用
int?会怎么样? -
它没有工作... :S ...我刚刚尝试过
-
更改为公共 IHttpActionResult Gettest([FromUri] int id)
-
它不起作用....使它起作用的唯一方法...它将类型从 int 更改为 object.... #LOL
-
@JorgeSolano 你能试试我下面的建议吗.. 它应该可以工作..
标签: c# angularjs asp.net-mvc asp.net-web-api