Partilhar via


Criar um controlador (VB)

por Stephen Walther

Neste tutorial, Stephen Walther demonstra como você pode adicionar um controlador a um aplicativo MVC ASP.NET.

O objetivo deste tutorial é explicar como você pode criar novos controladores MVC ASP.NET. Você aprenderá a criar controladores usando a opção de menu Adicionar Controlador do Visual Studio e criando um arquivo de classe manualmente.

Usando a opção de menu Adicionar Controlador

A maneira mais fácil de criar um novo controlador é clicar com o botão direito do mouse na pasta Controladores na janela Gerenciador de Soluções do Visual Studio e selecionar a opção de menu Adicionar, Controlador (consulte a Figura 1). Selecionar essa opção de menu abre a caixa de diálogo Adicionar Controlador (consulte a Figura 2).

Captura de tela da janela Gerenciador de Soluções do Visual Studio, que mostra as opções Adicionar e Controlador no menu de clique com o botão direito do mouse.

Figura 01: Adicionando um novo controlador (Clique para exibir a imagem em tamanho real)

Captura de tela da caixa de diálogo Adicionar Controlador, que mostra o Controlador Padrão 1 no campo Nome do Controlador.

Figura 02: a caixa de diálogo Adicionar Controlador (clique para exibir a imagem em tamanho real)

Observe que a primeira parte do nome do controlador está realçada na caixa de diálogo Adicionar Controlador . Cada nome do controlador deve terminar com o controlador de sufixo. Por exemplo, você pode criar um controlador chamado ProductController , mas não um controlador chamado Product.

Se você criar um controlador sem o sufixo Controller , não será possível invocar o controlador. Não faça isso, gastei inúmeras horas da minha vida depois de cometer este erro.

Listagem 1 – Controllers\ProductController.vb

Public Class ProductController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Product/

    Function Index() As ActionResult
        Return View()
    End Function

End Class

Você sempre deve criar controladores na pasta Controladores. Caso contrário, você estará violando as convenções de ASP.NET MVC e outros desenvolvedores terão mais dificuldade em entender seu aplicativo.

Métodos de ação de scaffolding

Ao criar um controlador, você tem a opção de gerar automaticamente os métodos de ação Criar, Atualizar e Detalhes (consulte a Figura 3). Se você selecionar essa opção, a classe de controlador na Listagem 2 será gerada.

Criando métodos de ação automaticamente

Figura 03: Criando métodos de ação automaticamente (clique para exibir a imagem em tamanho real)

Listagem 2 – Controllers\CustomerController.vb

Public Class CustomerController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Customer/

    Function Index() As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Details/5

    Function Details(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Create

    Function Create() As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Create

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Create(ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add insert logic here
            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function

    '
    ' GET: /Customer/Edit/5

    Function Edit(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Edit/5

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add update logic here

            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function
End Class

Esses métodos gerados são métodos stub. Você deve adicionar a lógica real para criar, atualizar e mostrar detalhes para um cliente por conta própria. Porém, os métodos stub fornecem um bom ponto de partida.

Criando uma classe de controlador

O controlador MVC ASP.NET é apenas uma classe. Se preferir, você pode ignorar o scaffolding conveniente do controlador do Visual Studio e criar uma classe de controlador manualmente. Siga estas etapas:

  1. Clique com o botão direito do mouse na pasta Controladores e selecione a opção de menu Adicionar, Novo Item e selecione o modelo Classe (consulte a Figura 4).
  2. Nomeie a nova classe PersonController.vb e clique no botão Adicionar .
  3. Modifique o arquivo de classe resultante para que a classe herde da classe base System.Web.Mvc.Controller (consulte Listagem 3).

Criando uma nova classe

Figura 04: Criando uma nova classe (Clique para exibir a imagem em tamanho real)

Listagem 3 – Controllers\PersonController.vb

Public Class PersonController
    inherits Controller

    Function Index AS String
        Return "Hello World!"
    End Function

End Class

O controlador na Listagem 3 expõe uma ação chamada Index() que retorna a cadeia de caracteres "Olá, Mundo!". Você pode invocar essa ação do controlador executando seu aplicativo e solicitando uma URL como a seguinte:

http://localhost:40071/Person

Observação

O ASP.NET Development Server usa um número de porta aleatório (por exemplo, 40071). Ao inserir uma URL para invocar um controlador, você precisará fornecer o número da porta correto. Você pode determinar o número da porta passando o mouse sobre o ícone do servidor de desenvolvimento do ASP.NET na Área de Notificação do Windows (no canto inferior direito da tela).