【发布时间】:2012-04-16 10:47:10
【问题描述】:
我刚刚创建了一个全新的 ASP.NET MVC 4 解决方案,并添加了 3 个 Areas 并希望它们按照指示进行路由:
1. General -> http://www.mysite.com/
2. Members -> http://www.mysite.com/members/
3. Administration -> http://www.mysite.com/administration/
我可以配置路由,以便“常规”区域在它是第一个段时工作,但当我不希望“常规”作为段显示在网址。如您所见,我的目标是干净的 URL 结构。
我计划在每个区域下添加一些控制器/视图,并希望保持这种区域组织。
我见过similar MVC 2 problem posted,但不确定区域注册的顺序是否能解决我的特定问题。
【问题讨论】:
-
“General”真的需要是一个区域吗?看起来这应该是您网站的大部分内容(而不是在任何区域),然后“成员”和“管理”是两个区域。
-
嗨,伊桑。有该选项,但理想情况下,我希望将所有控制器/视图保留在一个区域内,因为“常规”区域会随着时间的推移变得非常大。
-
或者添加到命名空间中的区域。试试这样:
context.MapRoute( name: "Dashboard_Site", url: "Dashboard/{controller}/{action}/{id}", defaults: new { area = "Dashboard", controller = "Home", action = "Index", id = UrlParameter.Optional }, namespaces: new {"WebSite.Areas.Dashboard.Controllers"});
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing asp.net-mvc-areas