コントローラーにアクションが存在する場合、asp.net-mvc はカスタム マップ ルートを処理する前にそのアクションにルーティングしますか?
例。
次のコントローラーがあるとします
public class ShopController : Controller
{
public ActionResult Shop(Category category)
{
// returns some result
}
public ActionResult CartItemCount()
{
// returns some result
}
}
そして、ルート コレクションに次のルートを登録しました。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Shop",
"Shop/{category}",
new { controller = "Shop", action = "Shop", category = UrlParameter.Optional } // Parameter defaults
);
}
次の URL を使用するとどうなりますか?
http://www.example.com/Shop/CartItemCount
編集
マッピングされたルートの名前は、それがどのように処理されたかに関連していると考えて混乱しました. そうではありません。ルートの名前に一致する URL に関しては問題ありません。
結局のところ、例で示したルートのすぐ上に別のルートが定義されていました。このルートは、名前は異なりますが、一致していました。私が言ったように、ルートに付けられた名前が何らかの形でマッチングに影響を与えると思ったので、それをチェックすることさえ考えませんでした.