2012-09-21 9 views

risposta

83

Phil Haack lo spiega bene in this blog post. Fondamentalmente un'azione bambino è un azione di controllo che si potrebbe richiamare dal punto di vista utilizzando il Html.Action aiutante:

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

Questa azione quindi eseguire il rendering e la sua uscita nella posizione specificata nella vista. La differenza con Partial è che un partial include solo il markup specificato, non c'è altra azione che l'azione principale.

Quindi, in pratica, hai l'azione principale che ha ricevuto la richiesta e hai reso una vista, ma da questa vista puoi rendere più azioni figlio che passeranno attraverso il loro ciclo di vita MVC indipendente e infine renderizzare l'output. E tutto ciò avverrà nel contesto di una singola richiesta HTTP.

Le azioni figlio sono utili per la creazione di interi widget riutilizzabili che possono essere incorporati nelle viste e che passano attraverso il loro ciclo di vita MVC indipendente.

+0

può chiamare non figlio azione vista frim? –

+10

In realtà quando si chiama 'Html.Partial' l'azione è automaticamente un'azione secondaria. Se decori l'azione con l'attributo '[ChildActionOnly]', puoi utilizzarla solo come azione figlio: non puoi accedervi direttamente. –

+0

Penso che una differenza sia il metodo di azione può chiamare da qualsiasi vista? Giusto? –

7

Un'azione figlio è un'azione che viene invocata utilizzando l'helper html.renderaction o html.action dall'interno di una vista.

1

Un'azione figlio è un metodo di azione che viene richiamato nella vista tramite @ Html.Action().

Esempio Ho un'azione sul mio controller.

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

Per chiamare questa azione dal View userò:

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