我有一个现有的项目,我想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