【发布时间】:2015-06-15 21:56:25
【问题描述】:
我的 WebApiConfig 有以下路线
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "Employee", action = "Get", id = RouteParameter.Optional }
);
Post WebApi 方法有以下签名
[HttpPost]
public IHttpActionResult Post(Employee emp)
{
.....
}
当我尝试调用此方法时,我得到“方法不允许”
如果我将我的 Post 方法更改为跟随它开始工作
[Route("api/employee/post")]
[HttpPost]
public IHttpActionResult Post(Employee emp)
{
...
}
我不明白是什么问题。我希望这与属性路由一起使用。谁能建议这里有什么问题。 GET 和 Post 路由会混淆吗?
【问题讨论】:
-
您很可能遇到过brockallen.com/2012/07/12/… 文章中描述的问题。向您的路由图添加一个如该处所述的参数。
-
这是一个不同的问题。在我的情况下,它返回 405 错误方法不允许
-
您尝试使用什么 URL 来执行 POST 和 GET ?
-
Api/employee/post 和 Api/employee/get
-
在您的默认路由中,您设置了 action = "get",因此您无法使用常规路由机制调用 post api。在下面找到答案以使用常规和属性路由来处理您的 api。
标签: routing asp.net-web-api2 asp.net-web-api-routing