Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用两个参数获取IEnumerable的值_C#_Linq_Asp.net Web Api - Fatal编程技术网

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

C# 如何使用两个参数获取IEnumerable的值,c#,linq,asp.net-web-api,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

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

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;
    }
}
但是我得到了一个
404错误

使用输入值(id)时,我从程序中获得正确的输出


你认为问题出在哪里?

问题出在路线
http://localhost:49643/api/Employees/1461/9604
无法正确解析参数
id1

默认路由如下所示(在WebApiConfig.cs中):

添加另一条路线,该路线也从URL映射
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 } 
);

进一步阅读:。

您需要此URL:
http://localhost:49643/api/Employees/1461?id1=9604
问题与通用
IEnumerable
接口无关;它只与所使用的托管框架的URL编码约定有关。或者在方法上方添加
[Route({id}/{id1}”)]
(或者仅添加
[Route({id1}”)]
,具体取决于默认路由)。旁注:您不需要
ToList()
Where
方法返回一个
IEnumerable
,您自己的方法也是如此。是的,这是真的,我需要这个url:
routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}", // only "id" parameter is mapped from URL
    defaults: new { id = RouteParameter.Optional }
);
routes.MapHttpRoute(
    name: "API with additional Id",
    routeTemplate: "api/{controller}/{id}/{id1}", // URL with TWO parameters
    defaults: new { id = UrlParameter.Optional, id1 = UrlParameter.Optional } 
);