ASP.Net MVC5 Html.ActionLink到不同控制器中的index方法

16 浏览
0 Comments

ASP.Net MVC5 Html.ActionLink到不同控制器中的index方法

我有一个ActionLink,当点击它时,我想要传递一个id到另一个控制器的index方法,并将用户带到该控制器的index页面。\n然而,当我点击这个链接时,页面仍然保持不变,并且URL更改为\"/Units?Length=15\"。\n我希望当点击链接时,URL为\"/Staff/Index/theUnitId\"。\n有人可以帮我吗?

0
0 Comments

在ASP.Net MVC5中,当使用Html.ActionLink方法链接到不同控制器的索引方法时,可能会出现问题。问题可能出现的原因和解决方法如下:

原因:

1. 可能没有正确提供方法的重载参数。

2. 可能控制器名称传递错误。

3. 可能由路由配置造成的问题。

解决方法:

1. 确保使用正确的重载参数,例如:

.Html.ActionLink("View Staff", "Index", "StaffController", new { id = item.UnitCode }, null)

2. 确保传递正确的控制器名称,例如如果控制器类名为"StaffController",应该传递"Staff"作为参数,而不是"StaffController"。

3. 检查路由配置是否正确。

希望这篇文章对解决ASP.Net MVC5中Html.ActionLink方法链接到不同控制器的索引方法的问题有所帮助。

0
0 Comments

ASP.Net MVC5中,有一个问题是在不同的控制器中使用Html.ActionLink方法链接到Index方法时出现错误。这个问题的原因是控制器名称错误以及参数传递错误。

首先,需要检查控制器的名称是否正确。如果控制器的名称不是"StaffControllerController",则需要调整ActionLink方法中的控制器参数的名称。正确的写法是:

.ActionLink("View Staff", "Index", "Staff", ... );

其次,需要确保使用正确的重载参数。在尝试使用的重载中,除了RouteValues参数外,还需要一个htmlAttributes参数。可以将htmlAttributes参数设置为null,如下所示:

.ActionLink("View Staff", "Index", "Staff" , new { id =  item.UnitCode }, null) 

通过检查控制器名称和正确使用重载参数,可以解决在不同控制器中使用Html.ActionLink方法链接到Index方法时出现的错误。

0
0 Comments

问题的原因是调用了错误的重载方法。解决方法是更改调用方法的参数,以匹配正确的重载方法。

在调用方法中,没有指定控制器名称,因此会匹配到不带控制器名称的重载方法。应该将调用方法更改为指定控制器名称的形式。

正确的调用方法如下:

.ActionLink("View Staff", "Index", "Staff", new { id = item.UnitCode }, null)

这样就可以匹配到带有控制器名称的重载方法。

正确的重载方法如下:

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

通过更改调用方法的参数,将控制器名称指定为"Staff",就可以解决这个问题。

注意,如果控制器的类名是"StaffControllerController",则在指定控制器名称时应该包含"Controller",否则不需要包含。

感谢回答者的指导,我也需要将"StaffController"更改为"staff"。非常感谢!=)

是的,谢谢你。我只是复制粘贴了他的代码。我在同时进行多个任务,我会编辑答案!

0