2009-08-28 61 views
0

我目前正試圖以用戶ActionLink的傭工,我不NerdDinner範例被描述想辦法的根。如何使用操作鏈接改變控制器,移動網站

比方說我這個頁面

/晚餐/

,並在該網頁上有晚宴的名單,那麼好吧,工作

現在可以說,我想後藤新上該網站,我已經創建了一個新的控制器MenuItemsController

所以可以說,我想轉到管理菜單項的網站的一個新的部分章節。

所以要

/的菜單項/ 3

將調出所有與晚餐ID 3.

這也是工作assoicated的菜單項。

我有麻煩,連接到每個菜單項的網頁,因爲當我使用ActionLink的代碼,沒有太多的修飾,我得到這個

dinner1 =鏈接/晚餐/的菜單項/ 3

而比

晚餐=鏈路/的菜單項/ 3

的ActionLink的代碼我試圖是

<%= Html.ActionLink("Menu Items", "/menuitems", new { id=item.id })%> 

你可以看到/那裏。這感覺不對。

我不知道,如果這個帖子在談論同樣的問題或沒有。

how do i have links to root controllers in site.master in asp.net mvc

是動作鏈接讓我在這裏使用了完全錯誤的事情,監守它們直接綁定到控制器我目前的內部?

如果是這樣,這將是最好的方法,我實現我想做的事,也進一步增加的複雜性聯繫起來一樣創建/編輯/刪除方法呢?

回答

1

剛剛擺脫斜線,並指定控制器和行動明確:

<%= Html.ActionLink("Menu Items", "Item", "menuitems", 
    new RouteValueDictionary { { "id", item.id } })%> 

你不要在你的例子舉一個動作名稱,所以我猜「的項目。」顯然插入正確的動作名稱。

如果您使用其中一個不帶控制器名稱的ActionLink重載,則使用當前控制器名稱。

我寫了an in-depth explanation of routing, ActionLink, and more

+1

起初它不起作用,因爲它增加了一個長度屬性,但是這個帖子幫了我一些忙。 http://stackoverflow.com/questions/824279/why-does-html-actionlink-render-length4 這將是很好,如果有人可以給我指示如何添加字符串的id位,因爲我的方法感覺bodgy <%= Html.ActionLink(「Menu items」,「menuitems /」+ item.id,new {controller =「menuitems」},new {id = item.id})%> 看來動作鏈接的最後一部分現在可能是多餘的,但它在 – 2009-08-28 19:05:56

+0

之前沒有做任何事情。問題在於ActionLink大約有10個重載,其中太多的重載有類型對象的參數。我會將我的回覆中的語法更改爲更強大的版本。 – 2009-08-28 19:17:01

相關問題