鉴于你有:
ControllerA
ControllerB
在ControllerA的视图中,您可以调用:
@Html.Action("ControllerB", "Home");
在ControllerB的“主页”操作中,如何确定最初调用的操作&控制器是谁?
我知道我可以从http上下文中确定URL,但对于我的生活,我无法弄清楚如何使用它来映射回最初调用的控制器和操作。
的Nb。我正在寻找的解决方案必须是任意深度。如果ControllerB调用ControllerC上的Html.Action,它在ControllerD上调用Html.Action,我需要能够从ControllerD :: Home解析原始动作是ControllerA :: Home。
答案 0 :(得分:2)
使用ControllerContext.IsChildAction
属性确定您是否处于子操作中,然后ControllerContext.ParentActionViewContext
属性包含您需要的所有信息。它有一个RouteData
属性,可以为您提供控制器和操作名称。