Compartilhar via


Adicionar um controlador (VB)

por Rick Anderson

Este tutorial ensinará os conceitos básicos da criação de um aplicativo Web MVC ASP.NET 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 VB.NET. Se você preferir C#, mude para a versão C# deste tutorial.

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

  • Modelo: os dados do seu aplicativo.
  • Visualizações: os arquivos de modelo que seu aplicativo usará para gerar respostas HTML dinamicamente.
  • 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 no Gerenciador de Soluções e selecionando Adicionar Controlador.

AddController

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

2AddEmptyController

Observe no 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 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 é nomeado Index. Execute o aplicativo (pressione F5 ou Ctrl+F5). Depois que o navegador for inicializado, acrescente "HelloWorld" ao caminho na barra de endereço. (No meu computador, é http://localhost:43246/HelloWorld) Seu navegador será semelhante à captura de tela abaixo. No método acima, o código retornou uma string diretamente. Dissemos ao sistema para retornar apenas um pouco de HTML, e ele o fez!

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

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

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

A primeira parte da URL determina a classe do controlador a ser executada. Portanto, /HelloWorld mapeia para a HelloWorldController classe. A segunda parte da URL determina o método de ação na classe a ser executada. Portanto, /HelloWorld/Index faria com que o Index HelloWorldController método da 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 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 Bem-vindo 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 parâmetro deve ser padronizado numTimes 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 tentar valores diferentes para name e numtimes. O sistema mapeia automaticamente os parâmetros nomeados da string de consulta na barra de endereços para os parâmetros do método.

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

Em ambos os exemplos, o controlador tem feito a parte VC do MVC — ou seja, 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 o código. Em vez disso, normalmente usaremos um arquivo de modelo de exibição separado para ajudar a gerar a resposta HTML. Vejamos como podemos fazer isso.