C# 使用uri参数和查询字符串时出现Web Api路由问题
我正在努力使一些Web Api 2.2路由正常工作。我有一条路线:C# 使用uri参数和查询字符串时出现Web Api路由问题,c#,url-routing,asp.net-web-api2,C#,Url Routing,Asp.net Web Api2,我正在努力使一些Web Api 2.2路由正常工作。我有一条路线: config.Routes.MapHttpRoute( name: "OrgAdminGetOrgUsers", routeTemplate: "organisations/{id}/users", defaults: new { controller = "OrganisationDetails", action = "GetUsersInAnOrgani
config.Routes.MapHttpRoute(
name: "OrgAdminGetOrgUsers",
routeTemplate: "organisations/{id}/users",
defaults: new { controller = "OrganisationDetails", action = "GetUsersInAnOrganisation" }
);
我遇到的问题是,当我添加一个查询字符串以使GET可搜索时,我的路由停止工作,得到404。我到处都找过使用Uri参数和查询字符串的例子,但什么都找不到。这似乎是人们经常做的事情?当我从控制器中删除查询字符串和可选参数时,路由工作正常
Uri:
控制器:
[HttpGet]
public IEnumerable<User> GetUsersInAnOrganisation(int id, string email = "", string firstName = "", string surname = "", string orderByColumn = "", string orderBy = "asc", int start = -1, int end = -1)
[HttpGet]
public IEnumerable GetUserSinanOrganization(int id,string email=“”,string firstName=“”,string姓氏=”,string orderByColumn=“”,string orderBy=“asc”,int start=-1,int end=-1)
非常感谢您的帮助 这对我有用-
配置-
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
"Default",
"api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
带有查询参数的url-
http://localhost:57597/api/OrganisationDetails/GetUsersInAnOrganisation/3?
orderby=asc&orderByColumn=surname&start=1&end=15
希望这会有所帮助。因此我已设法使其工作,需要使用[FromUri]为id参数声明控制器:
[HttpGet]
public IEnumerable<User> GetUsersInAnOrganisation([FromUri] int id, string email = "", string firstName = "", string surname = "", string orderByColumn = "", string orderBy = "asc", int start = -1, int end = -1)
[HttpGet]
公共IEnumerable GetUsersInAnorganization([FromUri]int-id,string-email=“”,string-firstName=“”,string-Nastname=“”,string-orderByColumn=“”,string-orderByColumn=“”,string-orderBy=“asc”,int-start=-1,int-end=-1)
我不想使用那个URL模板,我想让组织/ {ID} /用户作为这个URI的样式(在中间有一个参数)将在整个API中使用。
[HttpGet]
public IEnumerable<User> GetUsersInAnOrganisation([FromUri] int id, string email = "", string firstName = "", string surname = "", string orderByColumn = "", string orderBy = "asc", int start = -1, int end = -1)