讓另一個控制器說我的頁面「首頁/索引」上,我想去的頁面MyOtherController /索引/ 1Asp.Net MVC呼叫從視圖
我怎樣才能做到這一點?
我嘗試:
<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>
難道我還必須添加在Global.aspx路由文件?
讓另一個控制器說我的頁面「首頁/索引」上,我想去的頁面MyOtherController /索引/ 1Asp.Net MVC呼叫從視圖
我怎樣才能做到這一點?
我嘗試:
<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>
難道我還必須添加在Global.aspx路由文件?
一個選項是在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模板負責路由。
我不認爲ActionLink具有匹配該特定簽名的重載。您需要在路由值之後添加「null」以查找匹配的值(對於htmlAttributes)。奧萊的解決方案會更清潔,但它確實是一個偏好問題。它也將有助於可讀性,因此您不必猜測每個參數是否爲鏈接文本,動作/控制器等。