TOC

This article has been localized into Italian by the community.

Views:

View Discovery: Collegare il Controller e la View

All'inizio di questa guida, abbiamo dimostrato come un Controller possa ritornare una View semplicemente chiamando il metodo View(). Questo funziona persino senza parametri, pertanto a questo punto dovreste domandarvi come fa il Controller a conoscere esattamente quale delle vostre Views deve essere ritornata per ogni specifica Action. La risposta ha il nome di View Discovery - un processo nel quale ASP.NET MVC proverà ad indovinare quale View deve utilizzare senza forzarvi a specificarne esattamente una.

View Discovery funziona quando vengono seguite certe convenzioni durante la creazione della struttura del progetto. Abbiamo già parlato di questo in precedenza in questa guida quando abbiamo messo i Controller in una cartella chiamata "Controllers", i Models in una cartella chiamata "Models" e così via. Le View dovrebbero essere salvate in una sotto-cartella chiamata con lo stesso nome del Controller ed il nome del file della View dovrebbe essere identico al nome dell' Action. Così, per esempio, se avete un controller chiamato "ProductController", con una azione chiamata "Details", la vostra struttura di cartelle dovrebbe essere come la seguente:

In altre parole, la posizione e il nome delle vostre view dovrebbe seguire la seguente convenzione:

/Views/[Nome Controller]/[Nome Azione].cshtml

Se seguite la convenzione, potrete semplicemente chiamare il metodo View() in uscita dalla vostra Azione sul controller e ottenere un ricerca automatica della View corretta da parte del framework .NET.

public class ProductController : Controller
{
public IActionResult Index()
{
    return View();
}

public IActionResult Details()
{
return View();
}
}

Se il framework non riesce a trovare la View corretta usando la convenzione di cui sopra, allora cercherà la View in una ulteriore posizione:

/Views/Shared/[Nome azione].cshtml

La cartella Shared (condivisa), che potete trovare all'interno della cartella Views, è di solito utilizzata per i files Layout e per le partial view condivise da più di un controller. Ne discuteremo in seguito, ma per adesso, la cosa più semplice è seguire la convenzioni per la struttura delle cartelle descritta qui sopra.

Specificare una View

Se non potete (o non volete) seguire la convenzione, potete aiutare il framework a trovare la View corretta fornendo un parametro al metodo View(). Ci sono due modi: Potete specificare semplicemente il nome, che comunque richiede che si segua la convenzione per la struttura di cartelle, oppure fornire una View con un altro nome (immaginatevelo come se fosse un alias) come indicato qui di seguito

public IActionResult Test()
{
return View("Details");
}

Oppure potete fornire il percorso completo, il che vi darà totale flessibilità quando create la vostra struttura di cartelle nel progetto:

public IActionResult Test()
{
return View("/ViewFolderName/SomeFolderName/ViewName.cshtml");
}

Riepilogo

Se seguite una specifica convenzione quando create la vostra struttura di progetto, View Discovery consentirà ai vostri Controllers di automaticamente trovare una View basandosi sul nome del Controller e dell'Azione. Se non seguite questa convenzione, potete facilmente ritornare una View specifica passando il percorso e/o nome della View al metodo View().


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!