如何使用ActionLink()使用MapRoute?

时间:2012-08-03 17:18:01

标签: asp.net asp.net-mvc-3 routes target

我在Global.asax

中有这个路线值
  

routes.MapRoute(                   “默认”,//路线名称                   “{controller} / {action} / {id}”,//带参数的网址                   new {controller =“Home”,action =“Index”,id = UrlParameter.Optional} //参数默认值               );

        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方法正确使用路径和目标。

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

重载是ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

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

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