Asp.net mvc 如何在运行时找出asp.net mvc中控制器所属的区域?
因为这东西是全新的,我想不出有什么好的参考资料 我想使用反射枚举应用程序中的所有控制器。使用反射并不难。但自从该地区成立以来。如何知道特定控制器属于哪个区域(如果有) 也许我做错了,也许我需要列举整个区域。。。那我该怎么做呢?如果控制器不属于任何区域怎么办?有默认的吗Asp.net mvc 如何在运行时找出asp.net mvc中控制器所属的区域?,asp.net-mvc,controller,enumeration,asp.net-mvc-areas,system.reflection,Asp.net Mvc,Controller,Enumeration,Asp.net Mvc Areas,System.reflection,因为这东西是全新的,我想不出有什么好的参考资料 我想使用反射枚举应用程序中的所有控制器。使用反射并不难。但自从该地区成立以来。如何知道特定控制器属于哪个区域(如果有) 也许我做错了,也许我需要列举整个区域。。。那我该怎么做呢?如果控制器不属于任何区域怎么办?有默认的吗 有很多很好的文章深入解释了控制器和视图。如果有人能为我指出类似的区域,我将不胜感激。您必须更改控制器所在的名称空间以检测区域,或者从(RouteTable.Routes)循环中获取路由数据,并尝试匹配数据标记,即您在{contro
有很多很好的文章深入解释了控制器和视图。如果有人能为我指出类似的区域,我将不胜感激。您必须更改控制器所在的名称空间以检测区域,或者从(RouteTable.Routes)循环中获取路由数据,并尝试匹配数据标记,即您在{controller}中放置的标记和/或url信息:
foreach (RouteBase routeBase in RouteTable.Routes)
{
Route route = routeBase as Route;
var routeUrl = route.Url;
}
以下是获取路线信息的方法:
foreach (RouteBase routeBase in RouteTable.Routes)
{
Route route = routeBase as Route;
var routeUrl = route.Url;
}
Phil Haacks Route Debugger可能会帮助您:
关于以下方面的MSDN文章:
听起来很棘手,祝你好运 我能问你为什么需要知道这个地区吗?如果您是以RESTful方式编写应用程序,那么该区域是否重要?你需要这个的具体原因是什么?我问这个问题是因为可能有另一种和/或更好的方法来完成你想要完成的任务。我正在编写一个用户管理器,因此论坛/主页/编辑需要拥有不同于主页/编辑的权限。两个控制器显然具有相同的名称,但一个位于根目录,另一个位于论坛区域内。不过我以前想过这两种方法两者都不够优雅,因此我把问题贴在这里。使用名称空间很好,约定优于配置,但它相当脆弱。使用RouteTable可能会起作用,但对我来说似乎有点黑客。无论哪种方式,我都会继续玩下去,然后汇报:)