Althmann Márcio Fábio - Desenvolvimento web com ASP.NET MVC стр 25.

Шрифт
Фон

os passos já informados anteriormente, isto é, clique com o botão direito do mouse no diretório Controllers (na Solution Explorer) e na sequência, no menu que será apresentado, escolha as opções Add > Controller.

Na janela de criação do controller, nomeie-o como MedicosController. Não

se esqueça da CoC associada aos controllers em relação aos seus nomes. Estes nomes devem possuir o sufixo Controller. Seguindo com a parametrização, na opção Template, selecione o valor Empty MVC controller. A janela completamente parametrizada deve se parecer com a figura 5.3.

Apesar do ASP.NET MVC possuir um mecanismo de Scaffolding poderoso que

cria automaticamente controllers/actions/views, construiremos manualmente todo o controller e demais recursos necessários. Isso fará com que o entendimento de todo o fluxo de criação e funcionamento do MVC, seja facilitado.

84

Casa do Código

Capítulo 5. Controllers: Adicionando comportamento a nossa aplicação

Figura 5.3: Criação do MedicosController

É importante notar o fato de que, muito embora estejamos utilizando o template Empty MVC controller para este primeiro controller de exemplo, ao ser criado, o MedicosController já traz em seu interior uma action padrão chamada Index.

O código padrão do controller deve estar parecido com o da listagem 3.

Listagem 5.3 - Código padrão criado pelo Visual Studio:

public class MedicosController

: Controller

{

//

// GET: /Medicos/

public ActionResult Index()

{

return View();

}

}

Quando o administrador do aplicativo navegar até a URL /Medicos/, será

possível visualizar a lista de todos os médicos já cadastrados. Os modelos da nossa 85

5.4. Cadê meu médico: CRUDs

Casa do Código

aplicação foram criados utilizando Entity Framework e é através dele que obteremos a lista de médicos já cadastrados para que, em um momento posterior, possamos

enviá-los para a view.

Evoluir é preciso, assim, continuando a construção do MedicosController,

precisamos agora criar uma instância do objeto EntidadesCadeMeuMedicoBD

que possibilitará todo o trabalho de comunicação dos nossos modelos (mo-

dels) com o banco de dados da aplicação. Lembre-se de adicionar o namespace

CadeMeuMedico.Models nos usings do controller MedicosController. Com a

instância do contexto de entidades do Entity Framework criada, podemos na action Index obter uma lista com todos os Médicos cadastrados e, no instante seguinte, passar estes dados para a view. A listagem 4 representa isso.

Listagem 5.4 - Action Index retornando a lista de médicos cadastrados:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using CadeMeuMedico.Models;

namespace CadeMeuMedico.Controllers

{

public class MedicosController : Controller

{

private EntidadesCadeMeuMedicoBD db =

new EntidadesCadeMeuMedicoBD();

public ActionResult Index()

{

var medicos = db.Medicos.Include(m => m.Cidade)

.Include(m => m.Especialidade).ToList();

return View(medicos);

}

}

}

O código apresentado pela listagem 4 é simples. O aspecto a ser ressaltado aqui é o retorno da action Index. Como você pode perceber, estamos retornando uma

lista ( .ToList()) de todos os médicos ( .Medicos) disponíveis no contexto (db).

86

Casa do Código

Capítulo 5. Controllers: Adicionando comportamento a nossa aplicação

Outro detalhe interessante na listagem 4 é a utilização dos métodos

.Include(). A utilizar o método .Include, informamos ao Entity Framework

que além do modelo (tabela) que estamos carregando, queremos obter seus relacionamentos, ou seja, nesse caso estamos listando os médicos e obtendo sua respectiva

Especialidade e Cidade.

Agora que já possuímos a action Index criada e funcionando, podemos adici-

onar a view que responderá visualmente à solicitação de Index no navegador

aquela que mostrará a lista de médicos cadastrados para o usuário final. Para realizar tal operação, faremos uma vez mais o uso do scaffolding da framework ASP.NET

MVC.

Clique com o botão direito do mouse sobre o método View dentro da action

Index, no menu de contexto que será exibido selecione a opção Add View..., a figura 5.4 demonstra esse processo.

Figura 5.4: Adicionando uma nova View

Na janela que será apresentada, configuraremos os detalhes referentes a nova

view. Configure a view da seguinte forma:

View name: automaticamente o MVC vai sugerir o mesmo nome da action,

nesse caso Index;

Create a strongly-typed view: marque essa opção pois, através dela, criaremos uma view fortemente tipada, fato que facilitará nosso trabalho, permitindo a

utilização direta do model na view;

Model class: selecione o model que servirá de base para a criação da view. Nesse caso, sua opção deve ser por Medico";

Scaffold template: define qual template de view será criado. Neste caso, selecione a opção List. Como consequência, o MVC criará automaticamente uma

view com uma tabela pronta para demonstrar os registros existentes;

Reference script libraries: desmarque essa opção. Toda referência de script necessária para o funcionamento do aplicativo foi realizada na Master Page;

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке