我如何知道我的 MVC 控制器操作正在哪个区域被调用?
我想知道如何从控制器操作中通过 MVC 框架识别控制器所在的区域(我的意思是,无需使给定区域中的所有控制器都从具有该信息的基本控制器继承)。
我对子操作(通过 RenderAction 呈现的控制器操作)的情况特别感兴趣,例如调用父控制器的区域。
我正在使用 ASP .NET MVC 2.0 RTM
I want to know how, from a controller action, I could identify the area in which the controller is in via the MVC framework (I mean, without making all controllers in a given area inherit from a base controller with that info).
I'm particularly interested in the case of child actions (controller actions rendered via RenderAction), the area of the calling parent controller for instance.
I'm using ASP .NET MVC 2.0 RTM
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以从
RouteData
字典中获取它,该字典是ControllerContext
的成员。在您的控制器方法中(这是经过测试的代码):
我正在使用的路线如下所示:
请注意,因为我的区域路线比我的根路线(在 global.asax 中)更具体,所以我正在注册我的区域路线首先。
您应该使用 Phil Haack 的路由调试器检查您的路由,并确保您的 URL 命中了正确的路由。
You can get it from the
RouteData
dictionary that is a member of yourControllerContext
.In your controller method (this is tested code):
The route that I am using looks like this:
Note that, because my area routes are more specific than my root routes (in global.asax) I am registering my area routes first.
You should check your routes using Phil Haack's route debugger, and make sure that your Url is hitting the correct route.