2012-09-21 32 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 })