我有一個現有的項目,我想intorduce區域並保持原來的代碼,因爲它是。區域路線是否可以同時與非區域路線共存?
即
/web/controllers
/web/views
..
/web/areas/new-area/
/web/areas/new-area/controllers
..
我必須修改路由這個工作?即默認區域是「」?
我有一個現有的項目,我想intorduce區域並保持原來的代碼,因爲它是。區域路線是否可以同時與非區域路線共存?
即
/web/controllers
/web/views
..
/web/areas/new-area/
/web/areas/new-area/controllers
..
我必須修改路由這個工作?即默認區域是「」?
是的,這是可能的。每個區域都有獨立的路由註冊文件,因此您仍然可以像以前一樣保留控制器和視圖。
*不工作*不是一個非常精確的問題描述。它更常用於簡單的用戶而不是軟件開發人員。 – 2010-09-29 16:44:02
你原來的路線登記可能看起來是這樣的:
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中設置的路線。您將爲您所在地區設置路線,並按上圖所示區分路線並避免衝突。
必須有一個更好的標題... – jfar 2010-09-29 17:01:29
想要添加評論和希望相關鏈接到這個問題用不正確的答案。 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