0

我知道这是一般方法:

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

但如果我这样尝试:

 routes.MapRoute
    (
          name: "Defaults",
          url: "Home/Index/1"
    );

运行项目不会出现任何错误。我有Controller = Home Action = Index()HomeController但为什么当我在浏览器中输入时它会出错http://localhost:1702/Home/Index/1

错误:匹配的路由不包含“控制器”路由值,这是必需的。

路由中哪个部分是强制性的?另一个问题是:为什么我们需要Route Name?? 如果我给name=""它,即使存在不止一条路线,它也能正常工作name=""

4

2 回答 2

0

你需要这个:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
于 2016-08-30T12:17:47.437 回答
0

url 是为最终用户定义 url 结构。您甚至可以将其更改为

url: "{action}/{controller}/{id}"

因此,要了解哪个是控制器,哪个是操作,您必须提供 url 结构。

于 2016-08-30T12:32:08.407 回答