为什么需要在ASP.NET MVC中的RoutesTable的默认路由中指定控制器和操作

本文关键字:路由 默认 操作 控制器 RoutesTable ASP NET 中的 MVC 为什么 | 更新日期: 2023-09-27 17:58:40

为什么我们必须为默认路由指定默认值?

这是一条正常的默认路线:

  routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
  );

为什么我不能这么做:

  routes.MapRoute(
        name: "Default",
        url: "Home/Index/{id}",
        defaults: new {id = UrlParameter.Optional } 
  );

我已经指定了操作和控制器,但当我使用这种方式时,我会出现错误。有人知道你为什么要在default路由中指定动作和控制器吗?

为什么需要在ASP.NET MVC中的RoutesTable的默认路由中指定控制器和操作

如果没有默认的参数集,路由应该如何知道将此URL发送到哪里?

/

默认情况下,您可以使用该URL,因此它知道使用"主页"控制器的"索引"方法。

或者:

/Articles

在这种情况下,将调用"文章"控制器的"索引"操作。如果没有这些默认值,路由就无法知道该做什么。