2012-09-21 18 views

答えて

83

Phil Haackはthis blog postでうまく説明します。基本的には子供の行動は、あなたがHtml.Actionヘルパーを使用してビューから呼び出すことができ、コントローラのアクションです:

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

このアクションは、ビューで指定された場所で、その出力を実行し、レンダリングします。 Partialとの違いは、指定されたマークアップだけがパーシャルに含まれていることです。メインアクション以外のアクションは実行されません。

基本的にはリクエストを受けてビューをレンダリングするメインアクションがありますが、このビュー内では独立したMVCライフサイクルを経て最終的にレンダリングされる複数の子アクションをレンダリングできます。そして、これはすべて単一のHTTP要求のコンテキストで発生します。

子アクションは、再利用可能なウィジェット全体を作成するのに便利です。再利用可能なウィジェットは、ビューに埋め込まれ、独立したMVCライフサイクルを経ることができます。

+0

は非子アクションFRIMビューを呼び出すことができますか? –

+10

実際に 'Html.Partial'を呼び出すと、アクションは自動的に子アクションになります。 '[ChildActionOnly]'属性を使ってアクションをデコレートすると、子アクションとしてのみ使用できます。直接アクセスすることはできません。 –

+0

私は1つの違いは、アクションメソッドは任意のビューから呼び出すことができると思いますか? –

7

子アクションは、ビューの内部からhtml.renderactionまたはhtml.actionヘルパーを使用して呼び出されるアクションです。

1

子アクションは、ビュー内で@Html.Action()まで呼び出されるアクションメソッドです。

例 コントローラにアクションがあります。

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

私が使用するビューからこのアクションを呼び出すには:

@Html.Action("Time", new { time = DateTime.Now }) 
関連する問題