短くてシンプル。次のようなルートがあります。
config.Routes.MapHttpRoute(
name: "QuickSearch",
routeTemplate: "QuickSearch/{searchQuery}",
defaults: new { controller = "QuickSearch", action = "Search" },
constraints: new { httpMethod = new HttpMethodConstraint(new string[] { "GET" }), }
);
そして、次のようなアクション:
public class QuickSearchController : ApiController
{
[HttpGet]
public QuickSearchResponse Search(string searchQuery)
{
}
}
を呼び出すhttp://localhost:4096/QuickSearch/SearchMe
と、「SearchMe」が searchQuery パラメータにバインドされ、Search メソッドが正常に呼び出されます。
ただし、電話をかけるhttp://localhost:4096/QuickSearch/?searchQuery=SearchMe
と、「要求された URL: /QuickSearch」が見つからないという 404 メッセージが表示されます。
上記の URL は同等だと思いましたか? クエリ文字列を使用すると機能しないのはなぜですか?