2012-09-21 31 views

回答

83

菲尔哈克很好地解释了它在this blog post。基本上是一个孩子的行动是一个控制器的动作,你可以从视图中使用Html.Action助手调用:

@Html.Action("SomeActionName", "SomeController") 

那么这个动作将执行,并在视图中的指定位置提供它的输出。与Partial的不同之处在于,一个局部只包含指定的标记,没有其他操作比主要操作执行。

所以你基本上接收请求和渲染视图中的主要作用,但是从这个视图中,你可以渲染将通过他们的独立MVC的生命周期,并最终使输出多个孩子的行为。所有这些都将发生在单个HTTP请求的上下文中。

儿童的行为是创建其中可以嵌入到你的意见,并通过自己的独立的MVC生命周期当中去整个可重复使用的小工具是有用的。

+0

可以调用非独生子女行动FRIM看法? –

+10

实际上,当你调用'Html.Partial'时,该动作自动成为一个子动作。如果您使用'[ChildActionOnly]'属性修饰动作,那么您只能将其用作子动作 - 您无法直接访问它。 –

+0

我认为一个区别是动作方法可以从任何视图调用?对吧? –

7

的儿童动作是通过使用html.renderaction或html.action辅助从视图的内部调用一个动作。

1

子动作是在视图中通过@ Html.Action()调用的动作方法。

例子 我在我的控制器上有一个Action。

public DateTime Time(DateTime time) 
{ 
    return time; 
} 

拨叫查看这个动作我会用:

@Html.Action("Time", new { time = DateTime.Now })