Asp.net mvc 如何注册家庭自定义路由

Asp.net mvc 如何注册家庭自定义路由,asp.net-mvc,routes,Asp.net Mvc,Routes,我有一个没有自定义路由的网站,只是默认路由。 我需要为第三方客户创建一个GET操作,因此客户将需要url并向我的操作传递一个特定的参数。但我想提供尽可能简单的url。 例如: 我的默认路线: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Ho

我有一个没有自定义路由的网站,只是默认路由。 我需要为第三方客户创建一个GET操作,因此客户将需要url并向我的操作传递一个特定的参数。但我想提供尽可能简单的url。 例如:

我的默认路线:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }         // Parameter defaults
        ); 
我试过这个:

routes.MapRoute(
            "CustomRoute",
            "{idParameter}",
            new { controller = "Home", action = "CustomAction", idParameter= UrlParameter.Optional }
        );

但它不起作用。可以这样做吗?

请记住,顺序在定义路线时很重要。尝试将自定义路由置于默认路由之上。@Wettt感谢您的响应,但是,如果我将其置于上面,操作将执行,默认情况下,url中没有任何参数。因此,如果我只是执行,它会抛出一个错误,说我需要传递一些参数。在您的操作中,您可以为参数指定一个默认值,如
public ActionResult ActionName(int-id=0)
,或使其为空,如
public ActionResult ActionName(int-id)