Ho letto delle azioni sui bambini in MVC (libro fondamentale), ma non so davvero di cosa si tratta?Che cos'è un'azione figlio MVC?
Qualcuno potrebbe spiegare questi metodi?
Ho letto delle azioni sui bambini in MVC (libro fondamentale), ma non so davvero di cosa si tratta?Che cos'è un'azione figlio MVC?
Qualcuno potrebbe spiegare questi metodi?
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.
Un'azione figlio è un'azione che viene invocata utilizzando l'helper html.renderaction o html.action dall'interno di una vista.
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 })
può chiamare non figlio azione vista frim? –
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. –
Penso che una differenza sia il metodo di azione può chiamare da qualsiasi vista? Giusto? –