【发布时间】:2014-01-23 17:52:51
【问题描述】:
我的控制器方法写如下:
public class WorkerController : ApiController
{
//POST
//api/worker/unregister/<id>
//http body:
//status=<status>
[HttpPost]
public void Unregister(int status)
{
//stuff
}
}
每当我提出请求时,它都会显示资源未找到 (404)。
正确的接线方式是什么?
编辑:使用 PostMan chrome 扩展连接呼叫 - 休息客户端:
http://localhost:xxxx/api/worker/unregister/3
...然后我像往常一样传递帖子参数。它的x-www-form-urlencoded
更新:
尝试了以下方法:
public class WorkerController : ApiController
{
[HttpGet]
public void Unregister(int id, int status)
{
//stuff
}
}
...并传递如下网址:
http://localhost:xxxx/api/worker/unregister/3?status=-1
成功了!
但是为什么其他的不起作用。这是 WebApiConfig.cs 中的代码:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ServiceApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
【问题讨论】:
-
你能说明你是如何调用你的方法的吗
-
@Nilesh 添加了更多信息
标签: asp.net-web-api asp.net-web-api-routing