次のテストコントローラーがあります-
public string Get(int id)
{
return "hi from test " + id;
}
[HttpGet]
public string Search(string text)
{
return "you searched for " + text;
}
電話できる
- http://localhost:58635/api/Test/2
- http://localhost:58635/api/Test?id=2
- http://localhost:58635/api/Test/Search?text=textToSearcFor
だがしかしhttp://localhost:58635/api/Test/Search/textToSearcFor
私のルートはこの投稿のようなものです
config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByName",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: null
);
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" }
);
私は何を間違っていますか?