Aggiunta di un controller (VB)

di Rick Anderson

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:

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.

AddController

Assegnare un nome al nuovo controller "HelloWorldController" e fare clic su Aggiungi.

2AddEmptyController 2AddEmptyController

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!

Screenshot che mostra il browser con il testo Questo è l'azione predefinita nella finestra.

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.

Screenshot che mostra il browser con il testo Questo è il metodo di azione di benvenuto nella finestra.

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.

Screenshot che mostra il browser con il testo Hello Scott Num Times è 4 nella finestra.

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.