我的控制器类中有2个方法(ItensController.cs):
public void Put(int id, [FromBody]Item value)
{
}
和
[ActionName("UpdateItemFees")]
[HttpPost]
public void UpdateItemFees(int id, [FromBody]Item value)
{
}
我的客户电话是:
$http.put('/api/Itens/Put/' + $scope.osID, item)
$http.post('/api/Itens/UpdateItemFees/' + $scope.osID, item)
这很好用。但是,如果我更改控制器类中的参数名称,它将停止工作:
public void Put(int osID, [FromBody]Item value)
{
}
和
[ActionName("UpdateItemFees")]
[HttpPost]
public void UpdateItemFees(int osID, [FromBody]Item value)
{
}
错误是:
未找到与请求URI匹配的HTTP资源
'http://local/api/Itens/Put/3443'.
和
未找到与请求URI匹配的HTTP资源
'http://local/api/Itens/UpdateItemFees/3443'.
Global.asax中
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
}
此参数的名称更改有什么问题?
Get等其他方法正常工作。
问候。
答案 0 :(得分:0)
尝试添加路由属性:
[Route("api/Itens/{osID}")]
Asp.net MVC具有默认参数名称的内置路由,id
是其中一个参数名称。