让我说我在页面“主页/索引”,我想转到页面MyOtherController / Index / 1
我该怎么做?
我试试:
<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>
我是否还必须在Global.aspx文件中添加路由?
答案 0 :(得分:8)
一个选项是在routevalues列表中指定控制器的名称:
<%= Html.ActionLink("Test", "Index"
, new { controller = "MyOtherController", id = item.Id }) %>
另一种方法是将ActionLink
的重载与htmlAttributes = null
:
<%= Html.ActionLink("Test", "Index"
, "MyOtherController", new { id = item.Id }, null) %>
在这种情况下,ASP.NET MVC模板中的默认路由负责路由。
答案 1 :(得分:1)
我不相信ActionLink有一个匹配特定签名的重载。您需要在路由值之后添加“null”以查找匹配的(对于htmlAttributes)。 Ole的解决方案会更干净,但这确实是一个偏好问题。它还有助于提高可读性,因此您无需猜测每个参数是否为链接文本,操作/控制器等。