如何使用两个参数获取IEnumerable的值

时间:2017-11-13 15:03:12

标签: c# linq asp.net-web-api

我使用以下代码,它在编译时不会失败,但我似乎没有正确输入输入代码和参数!

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)时,我从程序中获得正确的输出。

您认为问题在哪里?

1 个答案:

答案 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