我正在修复某些应用程序的错误,我需要帮助理解以下代码行:
下面, 视图:
@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 }
?这个路线值有什么作用?
答案 0 :(得分:0)
我无法得到函数htmlhelper.Action()在这里做的事情。
看看Phil Haack的following blog post,他详细解释了儿童行为。
Html.Action助手基本上执行子操作。子操作是标准的控制器操作,除了它可以与执行主请求并行呈现。
Html.Action("SomeAction", "SomeController")
表示SomeAction
将在SomeController
上执行,并且此操作的执行结果会呈现给输出。
相反:Html.Action("SomePartial")
意味着SomePartial
将直接呈现给输出而不执行任何子控制器和操作。
但在这两种情况下,所有处理都在一个客户端请求中进行。只是您拥有执行并呈现视图的主控制器操作,并且在此视图中您使用Html.Action帮助程序来实例化子控制器和操作(可以返回例如部分视图)以及执行结果此视图的内容直接插入到输出中。