2009-05-04 138 views
3

讓另一個控制器說我的頁面「首頁/索引」上,我想去的頁面MyOtherController /索引/ 1Asp.Net MVC呼叫從視圖

我怎樣才能做到這一點?

我嘗試:

<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>

難道我還必須添加在Global.aspx路由文件?

回答

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

我不認爲ActionLink具有匹配該特定簽名的重載。您需要在路由值之後添加「null」以查找匹配的值(對於htmlAttributes)。奧萊的解決方案會更清潔,但它確實是一個偏好問題。它也將有助於可讀性,因此您不必猜測每個參數是否爲鏈接文本,動作/控制器等。