我知道這已經被問過,但我真的很困惑MVC中的路由配置的概念 - 特別是從URL中刪除控制器名稱和/或動作名稱。使用MVC路由從URL中刪除控制器和動作
在我的網頁上,我有一個名爲「Sidebar」的局部視圖,它使用自己的控制器(SidebarController)。
在側邊欄的局部視圖,我有以下的ActionLink:
@Html.ActionLink("December-2012", "Archive", new { id = "December-2012" })
當鏈路建立,讀取網址爲
http://localhost/Sidebar/Archive/December-2012
我的問題是有出現的「側邊欄」部分在URL中 - 此控制器在技術上並非用於任何導航的;它只是用來構建局部視圖。相反,我想要的網址爲:
http://localhost/Archive/December-2012
我試圖在ActionLink的指定控制器,但這只是導致
http://localhost/Archive/Archive/December-2012
可能有人請解釋(在傻瓜而言)我如何配置這樣當/ Archive存放在URL的末尾時,它知道用Index(id)動作調用ArchiveController(比方說)。
在此先感謝您,並道歉提出之前已被覆蓋的問題 - 正如我剛纔所說的,我只是在爲路線圖的整體概念而努力。
這非常接近 - 我曾嘗試過載,但它創建了一個新問題,即在URL中出現「索引」操作。理想情況下,我希望只有/ Archive/{id}而不是/ Archive/{action}/{id},然後讓路線圖「知道」它必須調用Index(id)它在URL中指定。 – user1861826
@ user1861826啊我明白了。你的問題不是很清楚。 – gideon
@ user1861826我更新了我的答案。 – gideon