我知道这是一般的方法:
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=""一样存在
发布于 2016-08-30 12:17:47
你需要这个:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);发布于 2016-08-30 12:32:08
url是为最终用户定义url结构。你甚至可以把它改为
url: "{action}/{controller}/{id}"因此,要理解哪个是控制器,哪个是动作,您必须提供url结构。
https://stackoverflow.com/questions/39227189
复制相似问题