如何使用ActionLink()使用MapRoute?

问题描述 投票:0回答:1

我在Global.asax中有此路由值

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

routes.MapRoute(
    "Edit", // Route name
    "Admin/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Edit", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

并且我使用此ActionLink方法来调用编辑路径

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID })

现在生成链接的结果是这样的...

http://localhost:777/Admin/Topic?Length=4

如何使用ActionLink方法正确使用路线和目标。

谢谢!

asp.net asp.net-mvc-3 routes target
1个回答
3
投票

使用正确的ActionLink重载以获得预期的结果

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, null)

过载为ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

为行为提供参数时,必须将null添加为null HTML属性。或者,如果您实际上需要将HTML属性应用于链接,则可以使用:

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, new { @class = "MyCustomCssClassName" } )
© www.soinside.com 2019 - 2024. All rights reserved.