我一直在玩ASP.Net MVC一段時間了。我發現最困難的事情是路由表。ASP.Net MVC路由策略
我發現大多數例子都保留了默認路由。我發現這導致了很多錯誤,其中默認路由重定向到HomeController並且不存在的操作。導致奇怪的錯誤信息,你會看到一個簡單的404。
我最終解決了路由設置,我明確定義了所有控制器/操作組合,我希望允許在最終重新定位到所有控制器/操作組合一個顯示明智的錯誤信息的404頁面。
我在這裏錯過了什麼嗎?或者這確實是一種做事的好方法?
看着我得到的答案我想我最好澄清一下這個問題。
我試圖欺騙我正在建設的網站的路由方案。我注意到,當我在默認的{controller}/{action}/{id}路由中,我想要顯示404錯誤的所有類型的URL實際上被路由到HomeController並導致一些不可靠的錯誤消息。
我有點困惑,因爲大多數代碼示例只是保留在默認路由中。是否有原因存在或可以將其刪除?
我用現在的方案看起來有點像這樣
routes.MapRoute("About", "About", new {controller = "Page", action = "About"});
routes.MapRoute("SignIn", "SignIn", new {controller = "Page", action = "SignIn"});
routes.MapRoute("SignOut", "SignOut", new {controller = "Page", action = "SignOut"});
routes.MapRoute("Authenticate", "Authenticate", new { controller = "Authentication", action = "Authenticate" });
routes.MapRoute("CatchAll", "{*url}", new { controller = "Error", action = "Http404" });
我已經得到了系統中的每一個動作所指定的路線。最後還要顯示一個404。這是一個很好的方法來做到這一點,或者有一種更簡單的方法來使路由方案更加簡單嗎?
我在同一條船上來的。我認爲如果默認路線無法找到控制器+操作,則所有捕獲都會起作用。相反,控制器工廠會拋出異常。你還在走的是明確的路線嗎? – dotjoe 2010-04-01 16:26:08