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

本文关键字:字段 Webservice 方法 两个 | 更新日期: 2023-09-27 18:17:07

好的,这是我的问题:我在javascript中创建了一个Windows 8商店应用程序,该应用程序从用c#编写的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;
    }

和routeConfig代码:

                routes.MapHttpRoute(
name: "teste",
routeTemplate: "api/{controller}/teste/{iUserMasterId}/{iEmployeeOrganizationsId}",
defaults: new
{
    action = "teste"
});

它给我的错误是404:在控制器中找不到方法(用提琴手验证)。但是控制器是正确的,因为控制器中有更多的方法。我还注意到,在同一控制器中使用多个字段的其他方法最终也会失败。我做错了什么?我已经将这两个代码与我拥有的其他控制器进行了比较,这些控制器也可以处理多个字段,它们似乎都工作得很好。

编辑:下面是请求示例:

    {"$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."}

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

问题解决。显然,我们之前的一些同事在routecconfig中写了一些不完整的路由,从而阻止了它们下面的每条路由被识别。