我想利用默認路由,所以我得到一個沒有查詢字符串參數的URL。我不能得到@ActionLink呈現正確的網址,以使用我的MVC3默認路由
所以,我現在有這個網址:
http://www.mysite.Items/Edit?ItemID=19719
而我試圖讓這樣的URL:
http://www.mysite.Items/Edit/19719
路由的作品,但我不能讓用於生成第二個url的@ Html.ActionLink方法。
這裏是我的剃刀代碼:
@Html.ActionLink("Edit", "Edit", new {item.ItemID}, new { id = "edit-" + item.ItemID })
第一個參數是我的鏈接的文本。第二個參數是Action。第三個是ID值,最後是最後一個參數是我用於某些javascript的HTML屬性。
本來我有我的第三個參數作爲
new {itemID = itemID}
這是當我的編輯操作預期命名的itemid作爲參數的整數值。我將它改爲'id',這樣路由就可以工作。
理想情況下,我想要一條路徑將19719值傳遞給名爲itemID的參數,但這超出了這個問題的範圍。
在此先感謝。
求助 謝謝Darin Dimitrov這個解決方案。
我最終以最初的方式留下了我的html代碼和動作參數。所有真正需要的是我的路線更新。我應該注意到,我必須在默認之前添加我的新路線圖。無論如何,這是我的路線註冊,現在這一切工作。
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("", "Items/{action}/{itemID}", new { controller = "Items", action = "Details", itemID = @"\d+" });
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}
哇,達林季米特洛夫回答你:D 幸運夥計 – salahy
他很少錯過任何問題''.net'標記';'' – Rafay
是否可以註冊一個允許itemID作爲參數的路由?例如:routes.MapRoute(「Default」,「{controller}/{action}/{id}」,new {controller =「Home」,action =「Index」,itemID = UrlParameter.Optional}); –