项目中有区域UserManager,其下有网页对应的Action Create,该区域的路由注册是这样:
context.MapRoute(
"UserManager_default",
"UserManager/{controller}/{action}/{id}",
new { action = "Index", controller = "Users", id = UrlParameter.Optional }
);
Global中的注册代码是:
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
(1):问题是在Create中使用ActionLink和Url.Action生成默认区域中的某Action(例如Account控制器的Logout),为什么生成的地址是/UserManager/Account/Logout。
(2):如果区域的路由注册是这样:context.MapRoute(
"UserManager_default",
"{area}/{controller}/{action}/{id}",
new { action = "Index", controller = "Users", area="UserManager" id = UrlParameter.Optional }
);
这么写正确吗,进入项目后地址是http://localhost:XXXX,页面会跑到UserManager/Users/Index,这个是因为Area中的默认路由设置导致的吗?
(3):怎么设置区域(有名称的区域和默认区域)中的路由注册才能在各个区域(有名称的/默认的)中自由定位到其他Action(可能是不同区域)就是获取URL,