路由:如何在url中隐藏动作名称?

yu_*_*nae 11 c# asp.net-mvc

在MVC默认路由中

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

无论何时访问索引操作,当访问"索引"操作时,URL都不显示操作名称.

我想在不同的控制器上获取该行为,该控制器检索单个项目的数据.我希望将默认操作命名为"get",对于此操作,我希望url不显示操作名称,只显示控制器和项目ID.

我认为与上面的路线类似,如下所示:

routes.MapRoute(
            "item_details",
            "item/{action}/{id}",
            new { controller = "item", action = "Get" }
            );
Run Code Online (Sandbox Code Playgroud)

会做的伎俩,但它给了我一个像localhost的网址:xxxx/item/Get/152 ...我错过了什么?

rob*_*sta 14

试试这个:

routes.MapRoute(
        "item_details",
        "item/{id}",
        new { controller = "item", action = "Get" }
        );
Run Code Online (Sandbox Code Playgroud)