我不明白为什么如果我在我的@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"是我启动操作链接的页面的控制器。
请有人可以帮助我吗? 我做错了什么?
谢谢
您应该尝试使用的 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重载的详细列表,请查看此处。
你应该改用下面的
@Html.ActionLink("Torna alla lista", "Index", "VwOpenOrders", new { SearchLV = TempData["SearchLV"]},null)
通过添加附加参数"null"来获得方法的正确重载
您实际上是在重载中使用ActionLink
:
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"]})
或者使用接受 5 个参数的重载:
@Html.ActionLink("Torna alla lista", "Index", "VwOpenOrders", new { SearchLV = TempData["SearchLV"]}, null)