我有以下MapRoute定义:
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
正如您所看到的,这与官方默认完全相同。在文档中有关于默认值的解释:
默认和可选的路由参数不需要出现在 匹配的URL路径。
所以我在HomeController中创建了一个非常简单的附加操作来测试默认行为:
public String Test()
{
return "Route found";
}
现在我试图理解为什么这个网址不起作用:'/ Test'
我预计如果我设置默认控制器值(= Home),那么路由器将在默认控制器中定义操作时找到该操作。
我也想知道这两种声明格式之间是否有任何区别:
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute("default", "{controller}/{action}/{id?}", new { controller = "Home", action = "Index" });