Fundamentos de Controladores no ASP.NET MVC

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:

  1. No Gerenciador de Soluções, clique com o botão direito sobre a pasta Controllers.
  2. Selecione Adicionar > Controlador....
  3. Escolha o template "Controlador MVC 5 - Vazio" e clique em Adicionar.
  4. 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: Exemplo mapeia para ExemploController).
  • 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 Index por 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.

Tags: ASP.NET MVC C# Web Development Model-View-Controller Routing

Publicado em 7-26 20:12