【发布时间】:2013-08-20 16:10:41
【问题描述】:
我有一个ActionDescriptor,我从中检索有关操作及其控制器的信息:
ActionDescriptor desc = ...;
string action = desc.ActionName;
string controller = desc.ControllerDescriptor.ControllerName;
string area = ?;
我想知道是否有比解析其命名空间更好的方法来确定控制器的区域,我目前正在这样做:
// e.g., Company.Areas.Foo.Controllers
var parts = desc.ControllerDescriptor.ControllerType.Namespace.Split('.').ToList();
var areaIndex = parts.IndexOf("Areas");
if (areaIndex > -1) area = parts[areaIndex + 1];
// area = "Foo"
编辑:
我应该澄清一下,我不在视图或控制器的上下文中,并且我试图仅根据其 Type 信息等来确定该区域。
【问题讨论】:
-
原谅我。我不确定这是什么。但这有帮助吗? :stackoverflow.com/questions/2723689/…
-
这段代码在何时何地执行?
-
@asymptoticFault 可以说,这段代码不在控制器内部执行。此外,我不是在尝试确定执行控制器的区域,而是在给定其类型的情况下确定某个控制器的区域。
-
哦,我明白了,是的,这完全是一个不同的问题。
标签: c# asp.net-mvc