C# 接收两个值/字段的Webservice方法

C# 接收两个值/字段的Webservice方法,c#,asp.net-mvc,web-services,api,C#,Asp.net Mvc,Web Services,Api,好的,这是我的问题: 我正在用javascript创建一个Windows8应用商店应用程序,它的数据来自一个用C#和asp编写的API。商店使用了几种需要两个字段的方法(例如:发送员工id和记录id以验证记录是否属于该员工并返回更多详细信息)。然而,由于某种原因,我有一种方法根本不起作用。以下是控制器中的方法: [HttpGet] [ActionName("teste")] public IEnumerable<EmployeeProjectViewModel>

好的,这是我的问题: 我正在用javascript创建一个Windows8应用商店应用程序,它的数据来自一个用C#和asp编写的API。商店使用了几种需要两个字段的方法(例如:发送员工id和记录id以验证记录是否属于该员工并返回更多详细信息)。然而,由于某种原因,我有一种方法根本不起作用。以下是控制器中的方法:

    [HttpGet]
    [ActionName("teste")]
    public IEnumerable<EmployeeProjectViewModel> teste(int iUserMasterId, int iEmployeeOrganizationsId)
    {
        var Query = from eprojects in db.EmployeeProjects
                    where eprojects.UserMasterId == iUserMasterId
                    && eprojects.Deleted == false
                    && eprojects.EmployeeOrganizationsId == iEmployeeOrganizationsId
                    select new EmployeeProjectViewModel
                    {
                        EmployeeProjectsId = eprojects.EmployeeProjectsId,
                        UserMasterId = eprojects.UserMasterId,
                        Name = eprojects.ProjectName,
                        Month = eprojects.ProjectMonth,
                        Year = eprojects.ProjectYear,
                        URL = eprojects.ProjectURL,
                        Description = eprojects.ProjectDescription,
                    };
        return Query;
    }
它给我的错误是404:在控制器中找不到方法(通过Fiddler验证)。然而,控制器是正确的,因为控制器中有更多的方法。我还注意到,同一控制器中使用多个字段的其他方法最终也会失败。 我做错了什么?我将这两个代码与我拥有的其他控制器进行了比较,这些控制器同样适用于多个字段,它们似乎都工作得很好

编辑: 以下是请求示例:

    {"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://localhost:55105/api/EmployeeProjects/teste/8/2'.","MessageDetail":"No action was found on the controller 'EmployeeProjects' that matches the request."}

问题解决了。显然,我们以前的一些同事在routeconfig中编写了一些不完整的路由,因此无法识别它们下面的所有路由。

看起来您的路由有点奇怪。您应该包括整个routeConfig代码,因为顺序很重要。然而,我怀疑问题在于您添加的路由根本没有被调用(因为您的默认路由在“teste”路由之前,并且您的请求模式与之匹配)。我的默认路由在“teste”路由*之后。我试着改变订单,但无论如何都没用。我不会添加所有的routeconfig代码,它非常大,而且您真的不需要所有的代码。如果你有什么特别需要的,你可以问一下。而且,即使失败了,它也会进入控制器,只是找不到方法。你可以发布一个示例请求吗?
    {"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://localhost:55105/api/EmployeeProjects/teste/8/2'.","MessageDetail":"No action was found on the controller 'EmployeeProjects' that matches the request."}