Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Versione aggiornata se questa esercitazione è disponibile qui usando Visual Studio 2013. La nuova esercitazione usa ASP.NET MVC 5, che offre molti miglioramenti in questa esercitazione.
Questa è un'esercitazione per principianti che presenta le nozioni di base di ASP.NET MVC. Si creerà una semplice applicazione Web che legge e scrive da un database. Visitare il centro di apprendimento MVC ASP.NET per trovare altre esercitazioni e esempi di MVC ASP.NET.
MVC è l'acronimo di Model, View, Controller. MVC è un modello per lo sviluppo di applicazioni in modo che ogni parte abbia una responsabilità diversa da un'altra.
- Modello: dati dell'applicazione
- Visualizzazioni: i file modello usati dall'applicazione per generare dinamicamente risposte HTML.
- Controller: classi che gestiscono le richieste URL in ingresso all'applicazione, recuperano i dati del modello e quindi specificano i modelli di visualizzazione che eseguono il rendering di una risposta al client
In questa esercitazione verranno illustrati tutti questi concetti e verrà illustrato come usarli per compilare un'applicazione.
Creare un nuovo controller facendo clic con il pulsante destro del mouse sulla cartella controller in Esplora soluzioni e scegliendo Aggiungi controller.
Assegnare al nuovo controller il nome "HelloWorldController" e fare clic su Aggiungi.
Si noti che nella Esplora soluzioni a destra è stato creato un nuovo file denominato HelloWorldController.cs e che il file è ora aperto nell'IDE.
Creare due nuovi metodi simili a questo all'interno della nuova classe pubblica HelloWorldController. Verrà restituita una stringa html direttamente dal controller come esempio.
using System.Web.Mvc;
namespace Movies.Controllers
{
public class HelloWorldController : Controller
{
public string Index()
{
return "This is my default action...";
}
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Il controller è denominato HelloWorldController e il nuovo metodo è denominato Index. Eseguire di nuovo l'applicazione, proprio come in precedenza (fare clic sul pulsante di riproduzione o premere F5 per eseguire questa operazione). Una volta avviato il browser, modificare il percorso nella barra degli indirizzi in http://localhost:xx/HelloWorld
cui xx è il numero scelto dal computer. Ora il browser dovrebbe essere simile allo screenshot seguente. Nel metodo precedente è stata restituita una stringa passata in un metodo denominato "Content". Abbiamo detto al sistema di restituire solo del codice HTML, ed è stato fatto!
ASP.NET MVC richiama classi controller diverse (e diversi metodi Action all'interno di essi) a seconda dell'URL in ingresso. La logica di mapping predefinita usata da ASP.NET MVC usa un formato simile al seguente per controllare il codice eseguito:
/[Controller]/[ActionName]/[Parameters]
La prima parte dell'URL determina la classe Controller da eseguire. Quindi /HelloWorld esegue il mapping alla classe HelloWorldController. La seconda parte dell'URL determina il metodo Action sulla classe da eseguire. Pertanto ,HelloWorld/Index causerebbe l'esecuzione del metodo Index() della classe HelloWorldController. Si noti che era necessario visitare /HelloWorld in precedenza e il metodo Index era implicito. Questo perché un metodo denominato "Index" è il metodo predefinito che verrà chiamato su un controller se non ne viene specificato uno in modo esplicito.
A questo punto, visitiamo http://localhost:xx/HelloWorld/Welcome.
Ora che il nostro metodo di benvenuto è stato eseguito e restituito la stringa HTML.
Anche in questo caso, /[Controller]/[ActionName]/[Parameters] in modo che Controller sia HelloWorld e Welcome sia il metodo in questo caso. I parametri non sono ancora stati eseguiti.
Si modificherà leggermente l'esempio in modo che sia possibile passare alcune informazioni dall'URL al controller, ad esempio il seguente: /HelloWorld/Welcome?name=Scott&numtimes=4. Modificare il metodo Welcome per includere due parametri e aggiornarlo come indicato di seguito. Si noti che è stata usata la funzionalità del parametro facoltativo C# per indicare che il parametro numTimes deve essere impostato su 1 se non viene passato.
public string Welcome(string name, int numTimes = 1)
{
string message = "Hello " + name + ", NumTimes is: " + numTimes;
return "" + Server.HtmlEncode(message) + "";
}
Eseguire l'applicazione e visitare http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4
la modifica del valore di name e numtimes come si preferisce. Il sistema esegue automaticamente il mapping dei parametri denominati dalla stringa di query nella barra degli indirizzi ai parametri nel metodo.
In entrambi questi esempi il controller ha eseguito tutto il lavoro ed è stato restituito direttamente HTML. In genere non vogliamo che i nostri controller restituiscano direttamente HTML, perché questo finisce per essere molto complesso per il codice. In genere si userà un file modello di visualizzazione separato per generare la risposta HTML. Esaminiamo come possiamo eseguire questa operazione. Chiudere il browser e tornare all'IDE.