我有一个现有项目,我想介绍区域并保留原始代码。
即
/web/controllers
/web/views
..
/web/areas/new-area/
/web/areas/new-area/controllers
..
我是否必须修改路由才能使用?即默认区域是“”?
答案 0 :(得分:2)
是的,这是可能的。每个区域都有一个独立的路由注册文件,因此您仍然可以像以前一样保留控制器和视图。
答案 1 :(得分: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中设置的路由。您将为您的区域设置路线,并且它们将如上所示区分,并且将避免冲突。