ASP.NET MVC4所有领域的列表

dev*_*dev 18 asp.net-mvc-areas c#-4.0 asp.net-mvc-4

我有一个ASP.NET MVC4应用程序,我在其中创建多个区域,有没有一种方法可以通过编程方式找出存在的区域数量及其名称.

nem*_*esv 31

AreaRegistration.RegisterAllAreas();每个区域的寄存器路由,DataTokens["area"]其中值是区域的名称.

所以你可以从中获取注册的区域名称 RouteTable

var areaNames = RouteTable.Routes.OfType<Route>()
    .Where(d => d.DataTokens != null && d.DataTokens.ContainsKey("area"))
    .Select(r => r.DataTokens["area"]).ToArray();
Run Code Online (Sandbox Code Playgroud)

如果你正在寻找AreaRegistration自己,你可以使用反射来获得AreaRegistration你的组合中派生的类型.