私が私のWebサービスを呼び出すと、魔女は2つのパラメーターを受け取ります:
潜在的に危険なRequest.Path値がクライアント(&)から検出されました。
Routeconfig:
config.Routes.MapHttpRoute(
name: "PropertiesSearch",
routeTemplate: "api/property/Search/{category}/{query}",
defaults: new { controller = "Property", action = "Search", category = "common", query = string.Empty }
);
コントローラーメソッド:
[HttpGet]
public SearchResult Search(string category, string query)
{
}
私がAPIを呼び出すとき:
/ api/property/search/homes/areaId%3D20339%26areaId%3D20015
潜在的に危険なRequest.Path値がクライアント(&)から検出されました。
これを行う:
/ api/property/search/homes /?query = areaId%3D20339%26areaId%3D20015
正常に動作します。
ルーティングデコードの問題を解決するにはどうすればよいですか?
スコット・ハンセルマン これについてブログに書いた 。 web.configの<httpRuntime>
ノードのrequestPathInvalidCharacters
プロパティを確認することをお勧めします。
個人的には、uri部分でそのような文字を避け、それらの値をクエリ文字列パラメーターとして単純に配置します。