添加参数时,ASP.NET MVC路由@ Html.ActionLink无法正常工作

时间:2018-09-03 09:02:09

标签: asp.net-mvc razor

我不明白为什么要在@ Html.ActionLink()上添加参数,导致根目录不正确。

实际上,如果我使用此

obj = 1
set_type(obj, bool) # Yields True

我看重的是基于“ / VwOpenOrders”的程序。

如果我添加这样的参数

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

它放在根目录“ / VwFases?Length = 12”上,其中“ VwFase”是我启动操作链接的页面的控制器。

请有人可以帮助我吗? 我在做什么错了?

谢谢

3 个答案:

答案 0 :(得分:0)

您应该改用以下内容

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

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

答案 1 :(得分: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重载的详细列表,请查看https://github.com/dhananjay12/spring-microservice-demo/blob/master/product-service/pom.xml

答案 2 :(得分:0)

您实际上正在使用此ActionLink overload

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

第三个参数是routeValues,而不是controllerName,因此Length=12是提供给它的字符串VwOpenOrders的长度。您应该使用controller参数:

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

或使用overload which accepts 5 arguments

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