如何从@Html中确定控制器.MVC . net中的动作

本文关键字:net MVC 控制器 @Html | 更新日期: 2023-09-27 18:04:07

如果你有:

ControllerA
ControllerB

在ControllerA的视图中调用:

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

在ControllerB中的'Home'操作中,如何确定最初调用的操作&控制器吗?

我知道我可以从http上下文中确定URL,但是对于我的生命,我不知道如何使用它来映射回最初调用的控制器和动作。

Nb。我要找的解一定是任意深度的。如果ControllerB调用Html。调用Html的ControllerC上的操作。在ControllerD上的动作,我需要能够解析原来的动作是ControllerD::Home.

如何从@Html中确定控制器.MVC . net中的动作

使用ControllerContext.IsChildAction属性来确定您是否处于子操作中,那么ControllerContext.ParentActionViewContext属性包含了您需要的所有信息。它有一个RouteData属性,可以给你控制器和动作名称。