当我添加参数时,ASP.NET MVC路由whit @ Html.ActionLink无法正常工作[重复]

问题描述 投票:-1回答:3

这个问题在这里已有答案:

我不明白为什么如果我在@Html.ActionLink()上添加参数,根就不会以正确的方式进行。

事实上,如果我使用这个

@Html.ActionLink("Torna alla lista", "Index", "VwOpenOrders")

基于“/ VwOpenOrders”的程序就是我的方面。

如果我添加这样的参数

@Html.ActionLink("Torna alla lista", "Index", "VwOpenOrders", new { SearchLV = TempData["SearchLV"]})

它继续“/ VwFases?Length = 12”,其中“VwFase”是我启动动作链接的页面的控制器。

请有人可以帮帮我吗?我究竟做错了什么?

谢谢

asp.net-mvc razor
3个回答
0
投票

您应该使用以下代替

@Html.ActionLink("Torna alla lista", "Index", "VwOpenOrders", new { SearchLV = TempData["SearchLV"]},null)

通过添加“null”的附加参数来获得方法的正确重载


0
投票

您应该尝试使用的ActionLink重载如下:

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

话虽这么说你应该改变你的代码如下:

@Html.ActionLink("Torna alla lista"
                , "Index"
                , "VwOpenOrders"
                , new { SearchLV = TempData["SearchLV"]}
                , null)

有关ActionLink重载的详细列表,请查看here


0
投票

你实际上正在使用这个ActionLink overload

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

第三个参数是qazxsw poi,而不是qazxsw poi,因此qazxsw poi是提供给它的字符串routeValues的长度。你应该做的是使用controllerName参数:

Length=12

或者使用VwOpenOrders

controller
© www.soinside.com 2019 - 2024. All rights reserved.