【发布时间】:2018-06-05 13:33:44
【问题描述】:
它可以是不同的方法。因此,我想从应用程序中获取所有 url。
我计划在我的应用程序中授权。而且,我需要这些(区域名称、控制器名称、操作名称)来询问何时发出请求。简而言之,就是 URL 地址。我试过这些。
示例:
- 试用(区域注册)
- 试用1控制器
- Home ActionResult >>> /Trial/Trial1/Home/
- A ActionResult >>> /Trial/Trial1/A/
- B ActionResult >>> /Trial/Trial1/B/
- Trial2Controller
- 示例(区域注册)
- Examp1控制器
- Home ActionResult >>> /Examp/Examp1/Home/
- 一个动作结果; >>> /Examp/Examp1/A/
- Examp2 控制器
- Home ActionResult >>> /Examp/Examp2/Home/
var areas = Assembly.GetExecutingAssembly().GetTypes().Where(type => typeof(AreaRegistration).IsAssignableFrom(type)).ToList();
foreach(var area in areas)
{
var controllers = Assembly.GetExecutingAssembly().GetTypes().Where(type => typeof(Controller).IsAssignableFrom(type)).ToList();
foreach (var controller in controllers)
{
var methods = controller.GetMethods(BindingFlags.Public | BindingFlags.Instance);
foreach (var method in methods)
{
if (method.ReturnType == typeof(ActionResult))
{
lstControllerActions.Add(string.Format("Area -> Controller -> Action : {0} -> {1} -> {2}", area.Name, controller.Name, method.Name));
}
}
}
}
lstControllerActions 结果:
- 区域 -> 控制器 -> 动作:试用 -> 试用 1 -> 主页
- 区域 -> 控制器 -> 动作 : Trial -> Trial1 -> A
- 区域 -> 控制器 -> 动作:试用 -> 试用 1 -> B
- 区域 -> 控制器 -> 操作:试用 -> 示例 1 -> 主页
- 区域 -> 控制器 -> 操作:试用 -> 示例 1 -> A
- 区域 -> 控制器 -> 操作:试用 -> 示例 2 -> 主页
- 区域 -> 控制器 -> 动作:Examp-> Trial1 -> Home
- 区域 -> 控制器 -> 动作 : Trial -> Trial1 -> A
- 区域 -> 控制器 -> 动作:试用 -> 试用 1 -> B
- 区域 -> 控制器 -> 操作:试用 -> 示例 1 -> 主页
- 区域 -> 控制器 -> 操作:试用 -> 示例 1 -> A
- 区域 -> 控制器 -> 操作:试用 -> 示例 2 -> 主页
一切都很漂亮,但是,区域之间没有连接控制器。
帮助
【问题讨论】:
-
请回答问题..
标签: c# asp.net-mvc asp.net-mvc-4 url model-view-controller