Asp.net @Url.Action中的子路由

Asp.net @Url.Action中的子路由,asp.net,asp.net-mvc,routes,Asp.net,Asp.net Mvc,Routes,我需要asp.net mvc中有关子路由的帮助。我需要这条路线 Home/Index/6/Person/Index/8 在我的路线图中,我有这个 routes.MapRoute( name: "Prueba", url: "Home/Index/{id}/Person/{action}/{personId}", defaults: new { controller = "Person", action = "Index", PersonId = UrlParameter

我需要asp.net mvc中有关子路由的帮助。我需要这条路线

Home/Index/6/Person/Index/8
在我的路线图中,我有这个

routes.MapRoute(
    name: "Prueba",
    url: "Home/Index/{id}/Person/{action}/{personId}",
    defaults: new { controller = "Person", action = "Index", PersonId = UrlParameter.Optional }
);
如果我把这条路线
Home/Index/6/Person/Index/8
放在URL浏览器中,它可以工作,但我需要链接


我不知道如何用
@Url.Action(Action,Controller,new{id=Value})创建这个路由
你可以使用
@Url.Action(“Index”,“Person”,new{id=“6”,personId=“8”})

这将生成所需的字符串,但它将选择符合条件的第一条路由

语法:
@Url.Action(“Action Name”,“ControllerName”,new{parameterName=“parameterValue”})

参考:

您可以使用或方法

比如说

@Html.RouteLink("Click me", "Prueba", new { id = 1, personId = 3 })


如果您想在路由中指定不同的操作方法,那么它将是例如
new{id=1,personId=3,action=“Edit”}

语法:@Url.action(“操作名”,“控制器名”,new{parameterName=“parameterValue”}),在您的例子中:@Url.action(“索引”,“个人”,new{id=“6”,personId=“8”)请注意,
personId
参数不是匹配路由所必需的。
@Url.RouteUrl("Prueba", new { id = 1, personId = 3 })