Aggiunta di un controller (VB)
Questa esercitazione illustra le nozioni di base per la creazione di un'applicazione Web MVC ASP.NET con Microsoft Visual Web Developer 2010 Express Service Pack 1, una versione gratuita di Microsoft Visual Studio. Prima di iniziare, assicurarsi di aver installato i prerequisiti elencati di seguito. È possibile installarli tutti facendo clic sul collegamento seguente: Programma di installazione della piattaforma Web. In alternativa, è possibile installare singolarmente i prerequisiti usando i collegamenti seguenti:
- Prerequisiti di Visual Studio Web Developer Express SP1
- ASP.NET aggiornamento degli strumenti MVC 3
- SQL Server Compact 4.0(runtime + tools support)
Se si usa Visual Studio 2010 anziché Visual Web Developer 2010, installare i prerequisiti facendo clic sul collegamento seguente: Prerequisiti di Visual Studio 2010.
Per questo argomento è disponibile un progetto Visual Web Developer con VB.NET codice sorgente. Scaricare la versione VB.NET. Se si preferisce C#, passare alla versione C# di questa esercitazione.
MVC è l'acronimo di model-view-controller. MVC è un modello per lo sviluppo di applicazioni in modo che ogni parte abbia una responsabilità separata:
- Modello: dati per l'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 quindi scegliendo Aggiungi controller.
Assegnare al nuovo controller il nome "HelloWorldController" e fare clic su Aggiungi.
Si noti che in Esplora soluzioni a destra è stato creato un nuovo file denominato HelloWorldController.cs e che il file è aperto nell'IDE.
All'interno del nuovo public class HelloWorldController
blocco creare due nuovi metodi simili al codice seguente. Verrà restituita una stringa di codice HTML direttamente dal controller come esempio.
Namespace MvcMovie
Public Class HelloWorldController
Inherits System.Web.Mvc.Controller
Public Function Index() As String
Return "This is my default action..."
End Function
Public Function Welcome() As String
Return "This is the Welcome action method..."
End Function
End Class
End Namespace
Il controller è denominato HelloWorldController
e il nuovo metodo è denominato Index
. Eseguire l'applicazione (premere F5 o CTRL+F5). Dopo aver avviato il browser, aggiungere "HelloWorld" al percorso nella barra degli indirizzi. (Nel mio computer, è http://localhost:43246/HelloWorld
) Il browser sarà simile allo screenshot seguente. Nel metodo precedente il codice ha restituito direttamente una stringa. Abbiamo detto al sistema di restituire solo un codice HTML, e lo ha fatto!
ASP.NET MVC richiama classi di controller diverse (e metodi di azione diversi 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 richiamato:
/[Controller]/[ActionName]/[Parameters]
La prima parte dell'URL determina la classe controller da eseguire. Quindi /HelloWorld esegue il mapping alla HelloWorldController
classe . La seconda parte dell'URL determina il metodo di azione sulla classe da eseguire. Pertanto , /HelloWorld/Index causerebbe l'esecuzione Index
del metodo della HelloWorldController
classe . Si noti che è stato necessario visitare /HelloWorld sopra e il Index
metodo è stato usato per impostazione predefinita. Questo perché un metodo denominato Index
è il metodo predefinito che verrà chiamato su un controller se non ne viene specificato uno in modo esplicito.
Passa a http://localhost:xxxx/HelloWorld/Welcome
. Il metodo Welcome
viene eseguito e restituisce la stringa "This is the Welcome action method...". Il mapping MVC predefinito è /[Controller]/[ActionName]/[Parameters]
. Per questo URL, il controller è HelloWorld
e Welcome
è il metodo . Non è ancora stata usata la [Parameters]
parte dell'URL.
Modificare leggermente l'esempio in modo che sia possibile passare alcune informazioni sui parametri dall'URL al controller, ad esempio /HelloWorld/Welcome?name=Scott&numtimes=4. Modificare il Welcome
metodo in modo da includere due parametri, come illustrato di seguito. Si noti che è stata usata la funzionalità del parametro facoltativo VB per indicare che il numTimes
parametro deve essere impostato su 1 se non viene passato alcun valore per tale parametro.
Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
Return "" & Server.HtmlEncode(message) & ""
End Function
Eseguire l'applicazione e passare a http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4
. È possibile provare valori diversi per name
e numtimes
. Il sistema esegue automaticamente il mapping dei parametri denominati dalla stringa di query nella barra degli indirizzi ai parametri del metodo.
In entrambi questi esempi il controller ha eseguito la parte VC di MVC, ovvero la visualizzazione e il funzionamento del controller. Il controller restituisce direttamente l'HTML. In genere, non vogliamo che i controller restituiscono direttamente HTML, perché questo diventa molto complesso per il codice. In genere si userà un file modello di visualizzazione separato per generare la risposta HTML. Vediamo come possiamo farlo.