C# Asp.net MVC3映射路由:在{id}之前添加前缀

C# Asp.net MVC3映射路由:在{id}之前添加前缀,c#,asp.net,asp.net-mvc,asp.net-mvc-3,routing,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Routing,我有一个像http://..../controller/details/abc_1234。我也想将以下url路由到上一个url: http://..../controller/abc/1234 下面的代码似乎不起作用 routes.MapRoute( “abc”, “{controller}/abc/{id}”, 新建{controller=“controller”,action=“Details”,id=“abc{id}” ); routes.MapRoute( “默认”, “{contro

我有一个像
http://..../controller/details/abc_1234
。我也想将以下url路由到上一个url:

http://..../controller/abc/1234
下面的代码似乎不起作用

routes.MapRoute(
“abc”,
“{controller}/abc/{id}”,
新建{controller=“controller”,action=“Details”,id=“abc{id}”
);
routes.MapRoute(
“默认”,
“{controller}/{action}/{id}”,
新建{controller=“controller”,action=“Details”,id=UrlParameter.Optional}
);
您的操作看起来像:

    public virtual ActionResult Details(string key, string id)
{
}

但我没有一个名为“abc”的动作。我需要将url重新路由到
details
action。您可以创建一个名为abc的操作,并从abc操作调用details操作是的,这将在删除默认参数中的
“abc”
后起作用。是否可以在MapRoute函数中处理它,从而无需创建另一个控制器?
    routes.MapRoute(
    "abc",
    "{controller}/{action}/{key}_{id}",
    new { controller = "controller" }
);
    public virtual ActionResult Details(string key, string id)
{
}