嗨我有2个没有参数的GET方法和一个带有字符串参数的方法,当我向Query args添加一个字符串时,我希望它转到第二个GET,但它会转到第一个
(我是C#的新手,所以请温柔!)
控制器:
// GET api/clientwithclocksites
public IEnumerable<ClientWithWorkSites> Get()
{
return this.clientRepository.GetClientsWithClockSites();
}
// GET api/clientwithclocksites/TEST
public ClientWithWorkSites Get(String clientCode)
{
return this.clientRepository.GetClientsWithClockSites(clientCode);
}
WebAPIConfig.cs:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
尝试访问网址
http://localhost:35790/api/clientwithclocksites/TEST
所需方法:
public ClientWithWorkSites Get(String clientCode)
实际方法:
public IEnumerable<ClientWithWorkSites> Get()
答案 0 :(得分:0)
我自己想出来了。只需要从id
更改路由参数参数变量名称以匹配方法参数名称clientCode
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{clientCode}",
defaults: new { clientCode = RouteParameter.Optional }
);