使用 Html.ActionLink 调用不同控制器上的动作

23 浏览
0 Comments

使用 Html.ActionLink 调用不同控制器上的动作

我正在尝试使用ActionLink在控制器之间进行导航。我将用一个例子来说明我的问题。

我正在Hat控制器的Index视图中,尝试使用下面的代码创建到Product控制器的Details操作的链接。

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %>

但是这个生成的链接是到Hat控制器下的Details操作,并在末尾添加了一个Length参数,而不是创建到Product控制器的Details链接。

Hat/Details/9?Length=7

因为这个问题,我无法使用HTML.ActionLink在控制器之间进行切换。如果您能指出我的错误,我将不胜感激。谢谢!

PS:我正在使用MVC附带的默认路由设置

routes.MapRoute("Default", "{controller}/{action}/{id}", 
                     new { controller = "Home", action = "Index", id = "" } );

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用这些参数会触发错误的重载函数/方法。

对我起作用的是:

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }, null) %>

它会触发HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)。

我正在使用MVC 4。

加油!

0
0 Comments

你需要的是这个重载项:

//linkText, actionName, controllerName, routeValues, htmlAttributes
<%=Html.ActionLink("Details", "Details", 
    "Product", new {id = item.ID}, null) %>

0