如何知道调用MVC控制器操作的区域?

时间:2010-03-22 14:30:53

标签: c# asp.net-mvc asp.net-mvc-areas asp.net-mvc-2

我想知道,通过控制器操作,我可以通过MVC框架识别控制器所在的区域(我的意思是,不会让某个区域中的所有控制器都从具有该信息的基本控制器继承) 。

我对子动作(通过RenderAction呈现的控制器动作)的情况特别感兴趣,例如调用父控制器的区域。

我正在使用ASP .NET MVC 2.0 RTM

1 个答案:

答案 0 :(得分:2)

您可以从RouteData的{​​{1}}字典中获取该字典。

在你的控制器方法中(这是经过测试的代码):

ControllerContext

我使用的路线如下:

string area = this.DataContext.RouteData.DataTokens["Area"].ToString();

请注意,因为我的区域路由比我的根路由更具体(在global.asax中)我首先注册我的区域路由

您应该使用Phil Haack的路线调试器检查您的路线,并确保您的Url正在按照正确的路线。