如何从MVC .Net中的@ Html.Action确定控制器

时间:2011-07-29 02:54:33

标签: c# asp.net-mvc

鉴于你有:

ControllerA
ControllerB

在ControllerA的视图中,您可以调用:

@Html.Action("ControllerB", "Home");

在ControllerB的“主页”操作中,如何确定最初调用的操作&控制器是谁?

我知道我可以从http上下文中确定URL,但对于我的生活,我无法弄清楚如何使用它来映射回最初调用的控制器和操作。

的Nb。我正在寻找的解决方案必须是任意深度。如果ControllerB调用ControllerC上的Html.Action,它在ControllerD上调用Html.Action,我需要能够从ControllerD :: Home解析原始动作是ControllerA :: Home。

1 个答案:

答案 0 :(得分:2)

使用ControllerContext.IsChildAction属性确定您是否处于子操作中,然后ControllerContext.ParentActionViewContext属性包含您需要的所有信息。它有一个RouteData属性,可以为您提供控制器和操作名称。