私はVisual Studio 2013の新しい.net空のプロジェクトをmvcで使用していますが、これらを持っています...
コントローラー:
public string Search()
{
return HttpUtility.HtmlEncode("Search.");
}
public string Results(string query)
{
return HttpUtility.HtmlEncode("Results." + "Query: " + query);
}
ルート:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Search", action = "Search", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Search",
url: "{controller}/{action}/{query}"
);
問題は、クエリ パラメータが
url: "{controller}/{action}/{query}"
正しくマッピングされません。
これらの 2 つの URL にアクセスすると、次のようになります。
https://localhost:44300/Search/Results/?query=er
https://localhost:44300/Search/Results/er
最初の作品のみ。
最初の URL の場合、Web ページは次のように表示されます。
Results.Query: er
2 つ目の表示は次のとおりです。
Results.Query:
私はこの例に従っています:コントローラーを追加すると、クエリパラメーターを適切にマップするためのルートを取得できません。
私は何を間違っていますか?
query
名前を変更しq
てクエリという単語が予約されているかどうかを確認するなど、多くのことを試しましたが、結果は同じです。