次の問題に直面しました。誰かがこの奇妙な振る舞いを見つけたのかもしれません。
global.asax.cs に次のルート定義があります。
routes.Add(new Route("/module/{searchTerm}", new RouteValueDictionary { {"controller", "Module"}, {"action", "Index"} }, null, new MvcRouteHandler()));
したがって、最初の観点からは特別なことではありませんが、検索語にスペースが+
記号として表示されると問題が発生します。
たとえば、リンクを開こうとします。
http://[myserver]/module/some%20search%20term
この場合、すべて問題なく、正しいアクションにリダイレクトされますが、リンクが次のようになっている場合:
http://[myserver]/module/some+search+term
提供された URL に一致するルートがないというエラーが表示されました。
ちなみに、ASP.NET 開発サーバーではこの問題を再現できません。IIS でのみ表示されます。おそらく誰かがそのような問題を抱えていましたか?