我使用以下代码,它在编译时不会失败,但我似乎没有正确输入输入代码和参数!
public IEnumerable<TimeWorkMonthly> Get(int id,int id1)
{
using (EmployeeDbEntities Entities = new EmployeeDbEntities())
{
var result = Entities.TimeWorkMonthlies.Where(e => e.KartNo == id && e.TermID == id1).ToList();
return result;
}
}
在我的浏览器中输入以下地址:
http://localhost:49643/api/Employees/1461/9604
但我得到了404 error
。
使用输入value(id)
时,我从程序中获得正确的输出。
您认为问题在哪里?
答案 0 :(得分:1)
问题是路由http://localhost:49643/api/Employees/1461/9604
无法正确解析参数id1
。
默认路由看起来像这样(在WebApiConfig.cs中):
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}", // only "id" parameter is mapped from URL
defaults: new { id = RouteParameter.Optional }
);
添加另一条路线,该路线也会映射来自网址的id1
:
routes.MapHttpRoute(
name: "API with additional Id",
routeTemplate: "api/{controller}/{id}/{id1}", // URL with TWO parameters
defaults: new { id = UrlParameter.Optional, id1 = UrlParameter.Optional }
);
进一步阅读:Routing in ASP.NET Web API。