C# 针对特定规则适当使用Html.ActionLink

C# 针对特定规则适当使用Html.ActionLink,c#,asp.net-mvc-5,razor-2,C#,Asp.net Mvc 5,Razor 2,我在RouteConfig中有一条规则: routes.MapRoute( name: "UserProfile", url: "users/{uid}", defaults: new { controller = "Users", action = "Profile" } ); 如何使用@Html.ActionLink链接到此操作?使用@Html.Routelink做这件事很容易,但是使用前者有可能吗?您只需传入操作名、控制器名,然后传入一个包含其他路由值的对象,在本

我在RouteConfig中有一条规则:

routes.MapRoute(
    name: "UserProfile",
    url: "users/{uid}",
    defaults: new { controller = "Users", action = "Profile" }
);

如何使用
@Html.ActionLink
链接到此操作?使用
@Html.Routelink做这件事很容易,但是使用前者有可能吗?

您只需传入操作名、控制器名,然后传入一个包含其他路由值的对象,在本例中为
uid

@Html.ActionLink("User Profile", "Profile", "Users", new { uid = 1 }, null)

如果由于路由的设置方式,这不能转换为
/users/{uid}
,那么您应该使用
@Html.RouteLink()
@Html.ActionLink()
用于直接链接到操作。您提供了操作和控制器,它根据您设置的路由提供了一个url。如果存在冲突的路由,则可能无法获得所需的url。在这种情况下,链接到您想要的路线是一种方法。

Hm,我想我尝试了一些类似的方法,但效果不太好。不过,您的解决方案似乎产生了所需的结果。在本例中,我没有使用最后一个“null”参数,这导致调用了错误的重载。谢谢你清理它。我可能有不同的超载比你。我没有一个重载,它只有
routeValue
而没有
htmlAttributes