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

时间:2014-04-15 19:10:14

标签: c# asp.net-mvc asp.net-routing

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

这是正常的默认路线:

  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路线中指定动作和控制器?

1 个答案:

答案 0 :(得分:1)

如果没有默认的参数集,路由应该如何知道发送此URL的位置?

/

默认设置允许您执行该网址,因此它知道使用' Home'控制器的索引'方法

或者:

/Articles

在这种情况下,'指数' “文章”的行动'控制器将被调用。如果没有这些默认值,路由无法知道该怎么做。