路线.MapRoute混乱



我知道这是一般的方法:

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 ?

错误:匹配的路由不包含"controller"路由值。

Routing中哪一部分是必需的?另一个问题是:为什么我们需要Route Name ?如果我输入name="",它可以正常工作即使存在多个路由,如name=""

你需要这个:

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

url是为最终用户定义url结构。你甚至可以把它改成

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

要理解哪个是控制器哪个是动作你必须提供url结构

相关内容

  • 没有找到相关文章

最新更新