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).
Figura 01: Adicionando um novo controlador (Clique para exibir a imagem em tamanho real)
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.
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:
- 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).
- Nomeie a nova classe PersonController.vb e clique no botão Adicionar .
- Modifique o arquivo de classe resultante para que a classe herde da classe base System.Web.Mvc.Controller (consulte Listagem 3).
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).