Partilhar via


Adicionar um controlador (VB)

por Rick Anderson

Este tutorial ensinará os conceitos básicos da criação de um aplicativo Web ASP.NET MVC usando o Microsoft Visual Web Developer 2010 Express Service Pack 1, que é uma versão gratuita do Microsoft Visual Studio. Antes de começar, verifique se você instalou os pré-requisitos listados abaixo. Você pode instalar todos eles clicando no seguinte link: Web Platform Installer. Como alternativa, você pode instalar individualmente os pré-requisitos usando os seguintes links:

Se você estiver usando o Visual Studio 2010 em vez do Visual Web Developer 2010, instale os pré-requisitos clicando no seguinte link: Pré-requisitos do Visual Studio 2010.

Um projeto do Visual Web Developer com VB.NET código-fonte está disponível para acompanhar este tópico. Baixe a versão do VB.NET. Se preferir C#, alterne para a versão C# deste tutorial.

MVC significa model-view-controller. O MVC é um padrão para desenvolver aplicativos de modo que cada parte tenha uma responsabilidade separada:

  • Modelo: os dados do aplicativo.
  • Exibições: os arquivos de modelo que seu aplicativo usará para gerar dinamicamente respostas HTML.
  • Controladores: classes que lidam com solicitações de URL de entrada para o aplicativo, recuperam dados de modelo e especificam modelos de exibição que renderizam uma resposta ao cliente.

Abordaremos todos esses conceitos neste tutorial e mostraremos como usá-los para criar um aplicativo.

Crie um novo controlador clicando com o botão direito do mouse na pasta Controladores em Gerenciador de Soluções e, em seguida, selecionando Adicionar Controlador.

AddController

Nomeie seu novo controlador como "HelloWorldController" e clique em Adicionar.

2AddEmptyController

Observe em Gerenciador de Soluções à direita que um novo arquivo foi criado para você chamado HelloWorldController.cs e que o arquivo está aberto no IDE.

Dentro do novo public class HelloWorldController bloco, crie dois novos métodos que se parecem com o código a seguir. Retornaremos uma cadeia de caracteres de HTML diretamente do controlador como exemplo.

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

Seu controlador é nomeado HelloWorldController e seu novo método é chamado Index. Execute o aplicativo (pressione F5 ou Ctrl+F5). Depois que o navegador for iniciado, acrescente "HelloWorld" ao caminho na barra de endereços. (No meu computador, é http://localhost:43246/HelloWorld) Seu navegador será semelhante à captura de tela abaixo. No método acima, o código retornou uma cadeia de caracteres diretamente. Dissemos ao sistema para retornar apenas alguns HTML, e ele fez!

Captura de tela que mostra o navegador com o texto Esta é a minha ação padrão na janela.

ASP.NET MVC invoca classes de controlador diferentes (e diferentes métodos de ação dentro delas), dependendo da URL de entrada. A lógica de mapeamento padrão usada pelo ASP.NET MVC usa um formato como este para controlar qual código é invocado:

/[Controller]/[ActionName]/[Parameters]

A primeira parte da URL determina a classe de controlador a ser executada. Assim /HelloWorld mapeia para a HelloWorldController classe . A segunda parte da URL determina o método de ação na classe a ser executada. Assim , /HelloWorld/Index faria com que o Index método da HelloWorldController classe fosse executado. Observe que só tivemos que visitar /HelloWorld acima e o Index método foi usado por padrão. Isso ocorre porque um método chamado Index é o método padrão que será chamado em um controlador se um não for especificado explicitamente.

Navegue até http://localhost:xxxx/HelloWorld/Welcome. O método Welcome é executado e retorna a cadeia de caracteres “Este é o método de ação Boas-vindas...”. O mapeamento de MVC padrão é /[Controller]/[ActionName]/[Parameters]. Para essa URL, o controlador é HelloWorld e Welcome é o método . Ainda não usamos a [Parameters] parte da URL.

Captura de tela que mostra o navegador com o texto Este é o método de ação De boas-vindas na janela.

Vamos modificar um pouco o exemplo para que possamos passar algumas informações de parâmetro da URL para o controlador (por exemplo, /HelloWorld/Welcome?name=Scott&numtimes=4). Altere seu Welcome método para incluir dois parâmetros, conforme mostrado abaixo. Observe que usamos o recurso de parâmetro opcional VB para indicar que o numTimes parâmetro deve ser padronizado como 1 se nenhum valor for passado para esse parâmetro.

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

Execute seu aplicativo e navegue até http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4. Você pode experimentar valores diferentes para name e numtimes. O sistema mapeia automaticamente os parâmetros nomeados da cadeia de caracteres de consulta na barra de endereços para os parâmetros em seu método.

Captura de tela que mostra o navegador com o texto Hello Scott Num Times é 4 na janela.

Nesses dois exemplos, o controlador vem fazendo a parte vc do MVC , que é o trabalho de exibição e controlador. O controlador retorna o HTML diretamente. Normalmente, não queremos que os controladores retornem HTML diretamente, pois isso se torna muito complicado para codificar. Em vez disso, normalmente usaremos um arquivo de modelo de exibição separado para ajudar a gerar a resposta HTML. Vamos ver como podemos fazer isso.