0

我正在修复某些应用程序的错误,我需要帮助理解以下代码行:

在这里,查看:

@Html.RenderControlText("WFD_CONSENT")

控制器:

public static MvcHtmlString RenderControlText(this HtmlHelper htmlHelper, string controlType)
        {
            return htmlHelper.Action("ControlText", new { controlType = controlType });
        }

这里的参数controlType = "WFD_CONSENT"。我无法了解该功能htmlhelper.Action()在这里做什么。从逻辑上讲,这个函数RenderControlText()应该从某个地方获取一些数据,但它看起来不像。我在这里陷入了死胡同。这个方法RenderControlText()应该获取一些我保存在某处的文本,并显示它。

编辑: Action() 方法具有以下参数:动作名称和对象路由值?第二部分是什么:new { controlType = controlType }?这个路由值是做什么的?

4

1 回答 1

0

我无法得到函数 htmlhelper.Action() 在这里做什么。

请查看 Phil Haack 的以下博客文章,其中详细解释了子行为。

Html.Action 助手基本上执行一个子动作。子动作是一个标准的控制器动作,除了它可以与主请求的执行并行呈现。

Html.Action("SomeAction", "SomeController")表示SomeAction将在其上执行SomeController并将此操作的执行结果呈现到输出。

相反:Html.Action("SomePartial")意味着SomePartial将直接呈现到输出,而不执行任何子控制器和动作。

但在这两种情况下,所有处理都发生在单个客户端请求中。只是您拥有执行并呈现视图的主控制器操作,并且在此视图中,您使用 Html.Action 帮助器来实例化子控制器和操作(例如可以返回部分视图)和执行结果这个视图直接插入到输出中。

于 2012-06-15T09:55:41.750 回答