我想要一條類似於以下的路線:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名稱都需要映射到相同的「基本」控制器,請注意名稱是什麼。我只需要公司名稱來進行身份驗證。虛榮MVC路線?
此外,如果沒有提供companyName,我需要映射到不同的控制器集合。
我該怎麼做?我也很欣賞一個很好的路由資源,所以我不必提問這樣的問題。
我想要一條類似於以下的路線:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名稱都需要映射到相同的「基本」控制器,請注意名稱是什麼。我只需要公司名稱來進行身份驗證。虛榮MVC路線?
此外,如果沒有提供companyName,我需要映射到不同的控制器集合。
我該怎麼做?我也很欣賞一個很好的路由資源,所以我不必提問這樣的問題。
routes.MapRoute(
"CompanyRoute",
"{companyName}/{controller}/{action}/{id}",
new { controller = "MyBaseCompanyController", action = "Index", id = "" }
);
routes.MapRoute(
"NoCompanyRoute",
"{controller}/{action}/{id}",
new {controller = "DifferentDefaultController", action = "Index", id = "" });
路由是一個相當複雜的話題,但它在Professional ASP.Net MVC 1.0中覆蓋得很好。對於網上的資源,我建議starting here,然後回來堆棧溢出;)
去的Global.asax.cs,並在的RegisterRoutes()方法中的「默認」路線之前添加以下路由:
routes.MapRoute(
"Vanity", // Route name
"{company}/{controller}/{action}/{id}", // URL with parameters
new { company = "", controller = "Home", action = "Index", id = "" } // Parameter defaults
);
如果您希望解決路由引起的錯誤。我建議下面的工具,我發現它非常有用。
這就是我的想法。但是,每當我嘗試時,我都會收到「資源未找到」錯誤。我不知道爲什麼它不符合我的路線。有任何想法嗎? – 2009-09-01 04:38:59
嘗試添加公司名稱的默認值:new {companyName =「」,controller =「MyBaseCompanyController」...} – 2009-09-01 04:47:01
嗯......我可能必須看到您的路線映射代碼和您的控制器類。您確定您的默認操作方法與您的默認控制器類相匹配? – womp 2009-09-01 04:47:17