如果控制器上存在操作,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 时,并不重要。
事实证明,我在示例中给出的路径之上定义了另一条路径。这条路线虽然名称不同,但正在匹配。我什至没有想过要检查它,因为正如我所说,我认为给路由的名称会以某种方式影响匹配。