1

次のテストコントローラーがあります-

        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" }
        );

私は何を間違っていますか?

4

1 に答える 1