在MVC默认路由中
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
每当访问索引操作时,访问“索引”操作时,网址都不会显示操作名称。
我想在不同的控制器上获取该行为,该控制器正在检索单个项目的数据。我希望将默认操作命名为“get”,对于此操作,我希望url不显示操作名称,只显示控制器和项目ID。
我认为这与上面的路线相似,如下:
routes.MapRoute(
"item_details",
"item/{action}/{id}",
new { controller = "item", action = "Get" }
);
可以做到这一点,但它给了我一个像localhost这样的网址:xxxx / item / Get / 152 ......我错过了什么?
答案 0 :(得分:13)
试试这个:
routes.MapRoute(
"item_details",
"item/{id}",
new { controller = "item", action = "Get" }
);
答案 1 :(得分:0)
试试这个:
routes.MapRoute(
"Default", // Route name
"{controller}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
答案 2 :(得分:0)
对于在 ASP.NET MVC 5.2天之内来到这里的用户,它在
添加id = UrlParameter.Optional
后有效,至少在我的情况下如此
routes.MapRoute(
name: "item_details",
url: "item/{id}",
defaults: new { controller = "item", action = "Get", id = UrlParameter.Optional }
);
如果RouteConfig
类中还有更多路线,请将其移至其他路线的顶部
或
您也可以这样做:
routes.MapRoute(
name: "item_details",
url: "item",
defaults: new { controller = "item", action = "Get", id = UrlParameter.Optional }
);