這裏很基本的問題。爲什麼我得到一個404錯誤,當我嘗試查看將參數傳遞給索引視圖
/供應商/ 123
但我可以看到的頁面,如果我去
/供應商/索引/ 123
有沒有什麼辦法讓我的工作成爲第一種方式?我只是使用在Global.asax中註冊的默認路由。
這裏很基本的問題。爲什麼我得到一個404錯誤,當我嘗試查看將參數傳遞給索引視圖
/供應商/ 123
但我可以看到的頁面,如果我去
/供應商/索引/ 123
有沒有什麼辦法讓我的工作成爲第一種方式?我只是使用在Global.asax中註冊的默認路由。
因爲這就是默認路由的定義方式。如果你不想指定actionname你可以修改它是這樣的:
routes.MapRoute(
"Default",
"{controller}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
這是說你可能不應該因爲做這個現在你的路線,你不必指定動作的可能性你希望在給定的控制器上調用這個名稱,這意味着你只能在每個控制器上有一個單獨的動作,而這個動作就是Index。在另一方面,如果你想要做一些這方面的具體控制器上你仍然可以保留默認路由,並添加另一個問題:因爲在後{id}
預計動作名稱的基本路由
routes.MapRoute(
"Vendors",
"vendors/{id}",
new { controller = "Vendors", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
,而是你正試圖把它在控制器名稱之後。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
更改您的潰敗只是{controller}
後接受{id}
。就像@Darin所描述的那樣。