Tutorial ASP.NET MVC 4 - Parte 1 - Controllers

Oi pessoal,


Resolvi começar uma série de tutoriais básicos, pois tenho percebido que o mais difícil para os alunos é sair da inércia. E muita gente acaba sem sair do lugar pois não conhece/domina os conceitos básicos do ASP.NET MVC.
Sempre que possível farei uma abordagem prática, sem rodeios. Quanto explicações teóricas deixarei links para os artigos já existentes na internet.
Usarei a versão 2010 do Visual Studio, mas tudo que eu fizer aqui pode ser feito no Visual Studio 2012 ou 2013.
Vamos escrever um site do zero, então vamos fazer o seguinte:
  1. File -> New Project

  2. Selecione Visual C# -> Web -> ASP.NET MVC 4 Web Application. Nomei o projeto como TutorialMVC, salve ele na pasta C:\Projetos.
  3. Na tela seguinte selecione Empty, cada uma das opções já vem com algumas pré configurações, mas aqui vamos usar vazio.
  4. Aqui nós temos a estrutura básica do projeto, note que existe as pastas Models, Views, Controllers. É justamente nessas pastas onde colocaremos os nossos modelos (estrutura de dados/ modelo), telas (telas/ template/ visualização) e o controlador, o controlador é a espinha dorsal do MVC, ele é principal componente, por isso resolvi começar esse tutorial básico por ele.
O que é o Controller? Nada mais é que uma classe que você especializa (herança) a partir da classe System.Web.Mvc.Controller. Ao fazemos isso criamos uma classe capaz de atender as solicitações dos usuários (Request) devolvendo para eles os mais diversos resultados, seja uma tela feita em HTML, um arquivo como PDF, um texto puro, um texto com alguma formatação específica (JSON ou XML, por exemplo). É através do Controller que os usuários acessam os recursos do site. Vamos criar nosso primeiro Controller!

  1. Botão direito na pasta Controllers -> Add -> Controller
  2. Em seguida abre uma janela onde informa o nome do Controller, ela já vem com Defaul1Controller. NÃO APAGE a palavra Controller, mude apenas de Default1 para Home. Na parte de Saffolding options, deixe a opção Template com Empty MVC controller e clique Add.

Parabéns! Você criou seu primeiro Controller! :D Ele deve ser parecer com isso aqui

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TutorialMVC.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

    }
}

Tá vendo o que disse, é só uma classe C#. A princípio nada de extraordinário, além dela ser uma herança de Controller e já ter um método chamado Index. Nos Controllers os métodos são chamados de Action. Então nós temos aqui o Controller Home com uma Action apenas chamado Index.
Index é o nome padrão das páginas inciais dos sites, não é? Normalmente temos um index.html ou um index.php ou index.jsp ou default.aspx (Por que vc é do contra Web Forms?). A Action Index representa essa página inicial, quer ver?
Altere action Index conforme o código a seguir, vamos fazer nosso Hello World do MVC.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TutorialMVC.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public String Index()
        {
            return "Hello World!";
        }

    }
}

Após fazer essa alterações rode a aplicação apertando F5 no teclado ou clicando no ícone verde de play!

Seu seu navegador padrão foi aberto escrito apenas Hello World!, você executou com sucesso sua primeira aplicação MVC! Como você pôde perceber uma aplicação MVC pode existir sem o M e sem o V, por isso que o C é o componente mais importante.
Contudo, uma aplicação web de verdade não é feita de texto fixo. Vamos capturar informações enviadas pela URL. Para isso vamos fazer mais uma alteração na action do nosso controller.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TutorialMVC.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public String Index(String nome)
        {
            return "Olá :" + nome;
        }

    }
}

Veja que agora nossa action recebe um parâmetro chamado nome e dentro da action concatenamos com o texto "Olá :", o seja fizemos uma action parametrizada. Execute a aplicação novamente. Saiu só o "Olá :", não foi?

Experimente digitar a seguinte na URL: http://localhost:4537/?nome=Achilles. Coloque seu nome e não o meu, risos.
Na URL tudo a partir da interrogação é chamado de Query String, é como passamos parâmetros para os servidores através da internet. Como o parâmetro que você passou se chama nome e o parâmetro da action Index se chama nome, o ASP.NET MVC faz o favor de ligar as coisas para gente.
Vamos adicionar mais um parâmetro na action.

        public String Index(String nome, String sobrenome)
        {
            return "Olá :" + nome + " " + sobrenome;
        }

Nesse caso ao executar a aplicação digite: http://localhost:4537/?nome=Achilles&sobrenome=Froes

Perceba que separamos os parâmetros com "&". Quando os parâmetros ficam visíveis na Query String nós significa que passamos os parâmetros via GET.
Vamos para o último passo, criar mais uma action.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TutorialMVC.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public String Index(String nome, String sobrenome)
        {
            return "Olá :" + nome + " " + sobrenome;
        }

        public String Visualizar(String termoDePesquisa)
        {
            return "Você pesquisou por: " + termoDePesquisa;
        }

    }
}

Para você acessar essa action a URL fica http://localhost:4537/Home/Visualizar/?termoDePesquisa=MVC

Perceba que ele o segue o seguinte padrão Nome do Controller/ Nome da Action/ parâmetros por Query String. Com esse padrão pode usar para criar suas Actions e Controllers a vontade.

Outra coisa, vê percebeu que as URLs não representam arquivos físicos? O resultado das URLs são os retornos das Actions. Na segunda parte vamos deixar de retornar texto e vamos utilizar as Views, ou seja vamos começar a ver as telas.

Espero que você tenha gostado e aproveitado!


Para uma visão geral e teoria sobre MVC pode seguir nesse link: http://msdn.microsoft.com/pt-br/library/dd381412(v=vs.108).aspx

Comentários

Postagens mais visitadas