Iniciando com ASP.Net MVC 3 (Parte 2)

<< Anterior

Adicionando um Controller


MVC é a sigla para Model-View-Controller. MVC é um padrão para desenvolvimento de aplicações que são bem arquitetadas e de fácil manutenção. Aplicações baseadas em MVC contém:
  • Controller: Classes que manipulam as requisições de entrada para a aplicação, recuperando o modelo de dados, e então específica o modelo de visão que retornará uma resposta para o cliente.
  • Models: Classes que representam os dados da aplicação e que utiliza a validação lógica para fortalecer as regras de negócios para aqueles dados.
  • Views: Modelo de arquivo que a sua aplicação utilizará para gerar respostas HTML dinamicamente para sua aplicação
Nós estaremos cobrindo todos estes conceitos nesta série de tutorial e mostraremos a você como usá-los para construir uma aplicação.

Vamos iniciar criando uma classe do tipo Controller. Na Janela Solution Explorer, clique com o botão direito na pasta Controllers e então selecione Add > Controller....


Nomeie o novo controller de "HelloWorldController". Deixe o Templeta padrão como Empty Controller e clique no botão Add.


AddHelloWorldController


Note na Solution Explorer que um novo arquivo foi criado com o nome de HelloWorldController.cs. O arquivo está aberto na IDE.




Dentro do bloco public class HelloWorldController, crie dois novos métodos como mostra o seguinte código. O controller irá retornar uma string HTML como no exemplo seguinte:


using System.Web;
using System.Web.Mvc; 
 namespace MvcMovie.Controllers { 
    public class HelloWorldController : Controller 
    { 
        // 
        // GET: /HelloWorld/ 
 
        public string Index() 
        { 
            return "This is my default action..."; 
        } 
 
        // 
        // GET: /HelloWorld/Welcome/ 
 
        public string Welcome() 
        { 
            return "This is the Welcome action method..."; 
        } 
    } }
Seu controller está nomeado como HelloWorldController e o primeiro método acima é nomeado Index. Vamos chamá-lo através de um browser. Execute a aplicação (Aperte F5 ou Ctrl F5). No browser acrescente à  url "HelloWorld" na barra de endereço. A página no browser deverá ficar parecida com a imagem seguinte. No método acima, o código retorna uma string diretamente. Você disse para o sistema apenas para retorna algum código HTML e ele o fez.


ASP,NET MVC invoca diferentes classes (e diferentes métodos de ação dentro deles) dependendo do conteúdo da URL. O mapeamento lógico padrão usado por ASP.NET MVC é um formato como este para determinar qual código invocar:

/[Controller]/[ActionName]/[Parameters]

A primeira parte da URL determina a classe que o controller execturá. Assim /HelloWorld mapeia para a classe HelloWorldController. A segunda parte da URL determina o método de ação na classe executada. Note que nós tivemos apenas que colocar no browser /HelloWorld e o método Index foi usado por padrão. Isto acontece porque o método nomeado como Index é o método padrão que será chamado em um controller se não for especificado um explicitamente.

Navegue para http://localhost:xxxx/HelloWorld/Welcome. O método Welcome é executado e retorna a string "This is the Welcome method...". O mapeamento MVC padrão é /[Controller]/[ActionName]/[Parameters]. Para esta URL o controller é HelloWorld e Welcome é o método de ação. Você ainda não usou a terceira parte [Parameters] ainda, que são os parâmetros da URL.





Vamos modificar o exemplo um pouco assim você poderá passar alguma informação por parâmetro através da URL para o controller (por exemplo, /HelloWorld/Welcome?name=Scott&numtimes=4). Altere o método Welcome para incluir dois parâmetros como exibido abaixo. Observe que o código utiliza o recurso do parâmetro opcional do C# para indicar que o parâmetro numtimes receberá o valor padrão de 1 se não for passado pelo parâmetro.

public string Welcome(string name, int numTimes = 1) {
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
Execute a sua aplicação e navegue para a URL do exemplo (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4). Você pode tentar valores diferentes para name e numtimes na URL. O sistema mapeia automaticamente os parâmetros nomeados da string na barra de endereços para os parâmetros no seu método.




Em ambos exemplos o controller foi modificado fazendo "VC" parte de MVC - que é o trabalho de View e Controller. O controller retorna o HTML diretamente. Normalmente você não iria querer o controller retornando HTML, visto que se torna muito complicado para o código. Em vez disso iremos utilizar um arquivo do modelo view para ajudar a gerar a resposta HTML. Vamos olhar no próximo tópico como fazer isso.

Tutorial extraído do site ASP.Net


Um comentário: