C# Net MVC:如何使用2个参数配置操作的路由?

C# Net MVC:如何使用2个参数配置操作的路由?,c#,asp.net-mvc,routeconfig,C#,Asp.net Mvc,Routeconfig,我的控制器中有两个参数的动作。 我使用JS函数从Razor视图调用它们,如下所示: function deleteAddress(addressId) { url = '@Url.Action("Delete", "Addresses",new { addressId = "3",actionRouteAfterActionFinish="SelectAddress"})'; openLink(url); } 以下是我在控制器内的行为声明: public async Task&

我的控制器中有两个参数的动作。 我使用JS函数从Razor视图调用它们,如下所示:

function deleteAddress(addressId) {
    url = '@Url.Action("Delete", "Addresses",new { addressId = "3",actionRouteAfterActionFinish="SelectAddress"})';
    openLink(url);
}
以下是我在控制器内的行为声明:

public async Task<ActionResult> Delete(int addressId,string actionRouteAfterActionFinish){
   ...
   ...
}
但当我尝试使用下面的
RouteConfig
时,它不起作用,当从Razor视图调用方法时,第二个参数设置为
null
。我想知道如何重写
RouteConfig
以管理具有两个参数的操作

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//enabling attribute routing
routes.MapMvcAttributeRoutes();
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Intro", id = UrlParameter.Optional }
);
routes.MapRoute(
    name: "TwoParamterAction",
    url: "{controller}/{action}/{parameter1}/{paramter2}"
);

我用
TwoParamterAction
规则对
Default
规则重新排序,但没有帮助。

这是因为参数名称不匹配。路由url中的参数的顺序可以与方法参数的顺序不同

因此,名称必须匹配

routes.MapRoute(
    name: "TwoParamterAction",
    url: "{controller}/{action}/{addressId}/{actionRouteAfterActionFinish}"
);

这应该是可行的,因为名称匹配。

那么为什么第一个参数
addressId
被正确地传递到
addressId
,而
默认路径中的参数名称是
id
routes.MapRoute(
    name: "TwoParamterAction",
    url: "{controller}/{action}/{addressId}/{actionRouteAfterActionFinish}"
);