我想達到改變我的應用程序的路線this目標看起來像這樣的路線時恢復到查詢字符串PARAMS:ActionLinks匹配不包含PARAM
hxxp://host/MyController/Widgets/3/AddWhatsit
這條路的觀點將有助於爲用戶添加的whatsit到Widget的3
同樣,我希望創建一個新的插件的路線是:
hxxp://host/MyController/Widgets/Create
我已經創建了單獨的路線來嘗試和促進這一點。它們是:
routes.MapRoute("DefaultAction",
"{controller}/{action}",
new {controller = "Home", action = "Index"});
routes.MapRoute("Default",
"{controller}/{id}/{action}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional});
我遇到的問題是,當我瀏覽到該索引頁的小工具(/ myController的/小工具,匹配「DEFAULTACTION」路線),這將帶來一個新的URL參數設置的任何ActionLinks這不是該路線的一部分會變成查詢字符串值。所以,舉例來說,Widget 3的編輯鏈接將呈現爲: Widget/Edit?id=3 instead of (what I would prefer):
Widget/3 /編輯
我想我明白我不會把我的(可選)id參數放在末尾路線。
我應該把它吸起來,並在路線的盡頭留下id?
這讓我非常接近。一個副作用是,如果我在使用像「/ Widget/4/Whatsits」這樣的路徑進行查看並且想將動作鏈接返回到「Widget/Index」,我會得到類似於「Widget/4/Index」沒有必要。所以這會從「自定義」路線跳轉到「默認」。 – 2013-03-21 20:53:39
它看起來像我的第二個問題是單獨的(環境路由值),所以我會關閉這一個。感謝您的回答。 – 2013-03-21 21:20:22