有人可以解释这些代码行吗?

时间:2012-06-15 09:50:27

标签: asp.net-mvc-3

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

下面, 视图:

@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()方法有以下参数:action-name和object routevalues? 第二部分是什么:new { controlType = controlType }?这个路线值有什么作用?

1 个答案:

答案 0 :(得分:0)

  

我无法得到函数htmlhelper.Action()在这里做的事情。

看看Phil Haack的following blog post,他详细解释了儿童行为。

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

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

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

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