2012-01-22 98 views
0

我是MVC世界的新手。我的問題是,我想用幾個URL請求使用相同的控制器。在MVC3中使用路由

期: 我有一家公司,包含三個部門。

我想從所有這些請求訪問HomeController/Index。

  1. www.company.com/Home/Index - >分型:www.company.com/
  2. ww.company.com/department1/Home/Index - >分型:www.company.com/Department1
  3. ww.company.com/department2/Home/Index - >鍵入:www.company.com/Department2

此圖路線會工作,但如果我要求不同的控制器則默認我必須鍵入類似這(主要公司)。 www.company.com/something/NewController/SomeAction。如果我想要爲主公司申請這個功能,我想輸入www.company.com/NewController/SomeAction。我如何在MVC3中解決這個問題?

routes.MapRoute(
    "area", // Route name 
    "{area}/{controller}/{action}/{id}", // URL with parameters 
    new { area = "area", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

回答

0

如果我理解正確的,你要訪問指數從所有controllor行動視圖。

然後,您可以將指數的共享文件夾以這樣的方式 - MVC將顯示索引頁的 作爲

* www.company.com/Shared/Index *

*I want to access the HomeController/Index from all of these requests. 
    www.company.com/Home/Index -> typing: www.company.com/ 
    ww.company.com/department1/Home/Index -> typing:www.company.com/Department1 
    ww.company.com/department2/Home/Index -> typing:www.company.com/Department2* 
+0

的網址主要網站將是www.company.com/HomeController/Index,併爲每個部門www.company.com/department1/HomeController/Index。第一個URL現在會顯示(根據mye MapRoute),因爲HomeController將位於「區域」部分,而「索引」不是有效的控制器。這個問題結束了這件事。如何路由到相同的控制器有或沒有「區域」填寫(區域是可選的)? –