【问题标题】:How to determine controller from @Html.Action in MVC .Net如何从 MVC .Net 中的@Html.Action 确定控制器
【发布时间】:2011-07-29 11:07:11
【问题描述】:

假设你有:

ControllerA
ControllerB

在您调用的 ControllerA 视图中:

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

在 ControllerB 的“Home”动作中,如何确定最初调用的动作和控制器是什么?

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

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

【问题讨论】:

  • 如果您可以通过视图将强关联映射回控制器,那么使用模式不是错误的吗?相反,通过将信息保存在一个共同的位置来自己跟踪状态可能会更好。这只是我的第一印象。

标签: c# asp.net-mvc


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多