我正在尝试使用 ActionLink
在控制器之间导航 . 我将以一个例子告诉我的问题 .
我在Hat控制器的索引视图上,我正在尝试使用下面的代码创建一个指向Product控件的Details操作的链接 .
<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %>
这不会创建指向Product控件上的Details的链接,而是在Hat控制器下生成一个指向Details操作的链接,并将Length参数附加到它的末尾:
Hat/Details/9?Length=7
由于此问题,我无法使用 HTML.ActionLink
在控制器之间切换 . 如果你能指出我做错了什么,我将不胜感激 . 谢谢
PS:我使用的是MVC附带的默认路由设置
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" } );
8 回答
你想要的是这个重载:
使用该参数,您将触发错误的重载功能/方法 .
什么对我有用:
它触发HtmlHelper.ActionLink(string linkText,string actionName,string controllerName,object routeValues,object htmlAttributes)
我正在使用MVC 4 .
Cheerio!
如果您获取MVC Futures程序集(我强烈推荐),您可以在创建ActionLink时使用泛型,并使用lambda来构造路径:
你可以在这里买到期货大会:http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471
为了清楚起见,我建议使用命名参数编写这些助手,如下所示:
你错了ActionLink的重载 . 试试这个 .
试试它工作正常
另一种解决方案是使用
Url
辅助对象来设置<a>
标签的href
属性,如:这段代码在局部视图中对我有用: