次の 2 つの定義済みルートがあるとします。
routes.MapRoute(name: "CityCategoryPage", url: "{city}-{state}/{categoryName}/__c/", defaults: new { controller = "Home", action = "GeoSubCategories" });
routes.MapRoute(name: "CityStateCategoryResults", url: "{city}-{state}/{categoryName}/{searchTerm}/{pageNumber}/{pageSize}", defaults: new { controller = "Results", action = "SearchCityStateCategory", pageNumber = UrlParameter.Optional, pageSize = UrlParameter.Optional });
2 番目のルートを削除すると、ホームページに結果が表示されるという期待どおりのアクションが得られます。ただし、2 番目のルートが存在するため、常に結果ページに転送されます。
なぜこれが起こっているのかについての考えがあります.「_ c」は、2番目のルートのオプションの条件に一致するオプションのパラメーターとして引き続き表示されますが、これを機能させる方法がわかりません. 「_c」を URL に追加したくないのですが、これを回避する別の方法があるかどうかも疑問に思っていますか?
ありがとう。