O que é o padrão MVC?
O MVC (Model-View-Controller) é um padrão de arquitetura de software que separa uma aplicação em três componentes principais, facilitando a organização do código, a testabilidade e a manutenção. Essa abordagem isola a lógica de negócios da intefrace do usuário.
- Model (Modelo): Gerencia os dados e a lógica de negócios. Representa o estado da aplicação e as regras de validação.
- View (Visão): Responsável pela apresentação visual. São os templates que geram o HTML enviado ao navegador do usuário.
- Controller (Controlador): Atua como um intermediário. Ele processa as requisições do navegador, interage com o modelo e decide qual visão deve ser renderizada.
Criando o primeiro controlador
Para iniciar o desenvolvimento em um projeto ASP.NET MVC no Visual Studio, o primeiro passo é a criação de um controlador. Siga estas etapas:
- No Gerenciador de Soluções, clique com o botão direito sobre a pasta
Controllers. - Selecione Adicionar > Controlador....
- Escolha o template "Controlador MVC 5 - Vazio" e clique em Adicionar.
- Defina o nome como
ExemploController. Por convanção, todos os controladores devem terminar com o sufixo "Controller".
Após a criação, o Visual Studio gera um arquivo .cs. Vamos modificar o conteúdo básico para entender como as rotas funcionam:
using System.Web;
using System.Web.Mvc;
public class ExemploController : Controller
{
// Ação acessada via: /Exemplo/
public string Index()
{
return "Este é o método <b>Index</b> padrão do controlador Exemplo.";
}
// Ação acessada via: /Exemplo/Mensagem/
public string Mensagem()
{
return "Este é um método personalizado chamado Mensagem.";
}
}
Entendendo o Roteamento
O ASP.NET MVC mapeia URLs para classes e métodos específicos com base em uma configuração de rotas. O formato padrão geralmente segue esta estrutura:
/[Controlador]/[NomeDaAcao]/[Parametros]
- A primeira parte indica qual classe Controller será instanciada (ex:
Exemplomapeia paraExemploController). - A segunda parte define qual método (Action) dentro da classe será executado (ex:
Index). - Se o nome da ação for omitido na URL, o framework tentará invocar o método
Indexpor padrão.
Passagem de Parâmetros via URL
É comum precisarmos capturar informações enviadas pelo usuário através da URL. Podemos fazer isso adicionando parâmetros aos nossos métodos de ação. Veja o exemplo abaixo:
// Ação acessada via: /Exemplo/BemVindo?usuario=Dev&repeticoes=5
public string BemVindo(string usuario, int repeticoes = 1)
{
string mensagem = HttpUtility.HtmlEncode("Olá " + usuario + ", acesso número: " + repeticoes);
return mensagem;
}
No código acima, utilizamos parâmetros opcionais do C#. Se o valor repeticoes não for fornecido na QueryString da URL, ele assumirá o valor padrão de 1. O uso de HttpUtility.HtmlEncode é uma prática de segurança essencial para prevenir ataques de Cross-Site Scripting (XSS), neutralizando caracteres maliciosos inseridos pelo usuário.
Ao testar no navegador com o endereço http://localhost:[porta]/Exemplo/BemVindo?usuario=Rodrigo&repeticoes=10, o controlador processará os dados e retornará a string formatada diretamente.
Responsabilidades do Controlador
Embora nos exemplos acima o controlador retorne strings diretamente, na prática do desenvolvimento MVC, o controlador raramente deve gerar HTML manualmente. Sua função principal é procsesar a lógica necessária e retornar um ActionResult, geralmente chamando return View();, delegando a responsabilidade da interface para o componente de Visão.