2010-09-29 71 views
2

我有一個現有的項目,我想intorduce區域並保持原來的代碼,因爲它是。區域路線是否可以同時與非區域路線共存?

/web/controllers 
/web/views 
.. 
/web/areas/new-area/ 
/web/areas/new-area/controllers 
.. 

我必須修改路由這個工作?即默認區域是「」?

+0

必須有一個更好的標題... – jfar 2010-09-29 17:01:29

+0

想要添加評論和希望相關鏈接到這個問題用不正確的答案。 http://stackoverflow.com/questions/3814772/existing-web-app-want-to-add-areas-what-are-the-ramifications-of-this – jfar 2010-09-29 17:05:23

回答

2

是的,這是可能的。每個區域都有獨立的路由註冊文件,因此您仍然可以像以前一樣保留控制器和視圖。

+1

*不工作*不是一個非常精確的問題描述。它更常用於簡單的用戶而不是軟件開發人員。 – 2010-09-29 16:44:02

0

你原來的路線登記可能看起來是這樣的:

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

的關鍵是你的地區有,您可以設置該區域的路線的AreaRegistration。裏面的域名註冊,它看起來像這樣:

context.MapRoute(
       "MyArea_default", 
       "MyArea/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 

請注意,您已經定義了路由的第一段如何具有「MyArea」(或稱之爲任何你想要的)。這是區域與默認路線的區別。

因此,總結一下,您不必修改已經在global.asax中設置的路線。您將爲您所在地區設置路線,並按上圖所示區分路線並避免衝突。