Aggiunta di un controller (VB)
Questa esercitazione illustra le nozioni di base sulla creazione di un'applicazione Web ASP.NET MVC usando Microsoft Visual Web Developer 2010 Express Service Pack 1, che è una versione gratuita di Microsoft Visual Studio. Prima di iniziare, assicurarsi di aver installato i prerequisiti elencati di seguito. È possibile installarli facendo clic sul collegamento seguente: Programma di installazione 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 + supporto strumenti)
Se si usa Visual Studio 2010 anziché Visual Web Developer 2010, installare i prerequisiti facendo clic sul collegamento seguente: Prerequisiti di Visual Studio 2010.
Un progetto Visual Web Developer con VB.NET codice sorgente è disponibile per accompagnare questo argomento. 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 di modello dell'applicazione useranno per generare dinamicamente risposte HTML.
- Controller: classi che gestiscono le richieste URL in ingresso all'applicazione, recuperare i dati del modello e quindi specificare i modelli di visualizzazione che eseguono il rendering di una risposta al client.
Verranno illustrati tutti questi concetti in questa esercitazione e viene illustrato come usarli per creare un'applicazione.
Creare un nuovo controller facendo clic con il pulsante destro del mouse sulla cartella Controller in Esplora soluzioni e quindi selezionando Aggiungi controller.
Assegnare un nome al nuovo controller "HelloWorldController" e fare clic su Aggiungi.
Si noti in Esplora soluzioni a destra che è 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 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 avrà un aspetto 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 ha fatto!
ASP.NET MVC richiama classi controller diverse (e diversi metodi di azione 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 nella classe da eseguire. Quindi /HelloWorld/Index causerebbe l'esecuzione Index
del metodo della HelloWorldController
classe. Si noti che solo per impostazione predefinita è 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 è specificato in modo esplicito.
Passare 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 è ed Welcome
è HelloWorld
il metodo . Non è ancora stata usata la [Parameters]
parte dell'URL.
Si modifica 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 predefinito a 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 nel 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, poiché questo diventa molto complesso per il codice. In genere si userà un file di modello di visualizzazione separato per generare la risposta HTML. Esaminiamo come possiamo farlo.