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

Шрифт
Фон

87

5.4. Cadê meu médico: CRUDs

Casa do Código

Use a layout master page: essa opção deve ser selecionada para criar uma view que utilize a Master Page já definida anteriormente.

A figura 5.5 representa esse processo. Todas as views criadas no aplicativo a partir de agora seguirão este template, onde alteraremos somente as propriedades de model class e Scaffold template.

Figura 5.5: Adicionando uma nova View

Após clicar no botão Add,

o Visual Studio criará e automaticamente abrirá a view para edição. A listagem 5 apresenta o código gerado para a view Index.

O próximo capítulo será dedicado integralmente à apresentação de detalhes

relacionados às views e à sua engine padrão o ASP.NET Razor. Não se preocupe 88

Casa do Código

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

agora com as particularidades do Razor mencionadas, faremos poucas alterações só para ter um cadastro em pleno funcionamento.

Listagem 5.5 - Código padrão gerado pelo MVC pra a view:

@model IEnumerable<CadeMeuMedico.Models.Medico>

@{

ViewBag.Title = %%Index%%;

}

<h2>Index</h2>

<p>

@Html.ActionLink("Create New", "Create")

</p>

<table>

<tr>

<th>

@Html.DisplayNameFor(model => model.IDMedico)

</th>

<th>

@Html.DisplayNameFor(model => model.CRM)

</th>

<th>

@Html.DisplayNameFor(model => model.Nome)

</th>

<th>

@Html.DisplayNameFor(model => model.Endereco)

</th>

<th>

@Html.DisplayNameFor(model => model.Bairro)

</th>

<th>

@Html.DisplayNameFor(model => model.Email)

</th>

<th>

@Html.DisplayNameFor(model => model.AtendePorConvenio)

</th>

<th>

@Html.DisplayNameFor(model => model.TemClinica)

89

5.4. Cadê meu médico: CRUDs

Casa do Código

</th>

<th>

@Html.DisplayNameFor(model => model.WebsiteBlog)

</th>

<th>

@Html.DisplayNameFor(model => model.IDCidade)

</th>

<th>

@Html.DisplayNameFor(model => model.IDEspecialidade)

</th>

<th></th>

</tr>

@foreach (var item in Model) {

<tr>

<td>

@Html.DisplayFor(modelItem => item.IDMedico)

</td>

<td>

@Html.DisplayFor(modelItem => item.CRM)

</td>

<td>

@Html.DisplayFor(modelItem => item.Nome)

</td>

<td>

@Html.DisplayFor(modelItem => item.Endereco)

</td>

<td>

@Html.DisplayFor(modelItem => item.Bairro)

</td>

<td>

@Html.DisplayFor(modelItem => item.Email)

</td>

<td>

@Html.DisplayFor(modelItem => item.AtendePorConvenio)

</td>

<td>

@Html.DisplayFor(modelItem => item.TemClinica)

</td>

<td>

@Html.DisplayFor(modelItem => item.WebsiteBlog)

90

Casa do Código

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

</td>

<td>

@Html.DisplayFor(modelItem => item.IDCidade)

</td>

<td>

@Html.DisplayFor(modelItem => item.IDEspecialidade)

</td>

<td>

@Html.ActionLink("Edit", "Edit",

new { /* id=item.PrimaryKey */ }) |

@Html.ActionLink("Details", "Details",

new { /* id=item.PrimaryKey */ }) |

@Html.ActionLink("Delete", "Delete",

new { /* id=item.PrimaryKey */ })

</td>

</tr>

}

</table>

Por padrão, o scaffold do MVC cria uma tabela com uma coluna para cada pro-

priedade do modelo, nesse caso, temos um grid que irá mostrar todos os dados dos médicos. No caso da aplicação Cadê meu Médico, os dados que deveremos mostrar

no grid devem ser apenas: Nome, Cidade e Especialidade.

Modifique o código da view Index removendo as colunas desnecessárias, man-

tendo somente as colunas para Nome, Cidade e Especialidade. A listagem 6 apre-

senta o código esperado. Repare também que, nas colunas Cidade e Especialidade, modificamos o valor apresentado. Originalmente o scaffold adicionou as propriedades IDEspecialidade e IDCidade, o que para o usuário não faz sentido para ele a informação necessária é o nome referente a essas informações.

Na listagem 4 utilizamos o recurso .Include() do EntityFramework para

carregar

os relacionamentos do modelo, com isso fica fácil navegar entre os relacionamentos do modelo e apresentar outras informações ao usuário.

Listagem 5.6 - Listagem de médicos mostrando só os dados necessários:

@model IEnumerable<CadeMeuMedico.Models.Medico>

@{

ViewBag.Title = %%Index%%;

91

5.4. Cadê meu médico: CRUDs

Casa do Código

}

<h2>Index</h2>

<p>

@Html.ActionLink("Create New", "Create")

</p>

<table>

<tr>

<th>

@Html.DisplayNameFor(model => model.Nome)

</th>

<th>

@Html.DisplayNameFor(model => model.IDCidade)

</th>

<th>

@Html.DisplayNameFor(model => model.IDEspecialidade)

</th>

<th></th>

</tr>

@foreach (var item in Model) {

<tr>

<td>

@Html.DisplayFor(modelItem => item.Nome)

</td>

<td>

@Html.DisplayFor(modelItem => item.Cidade.Nome)

</td>

<td>

@Html.DisplayFor(modelItem => item.Especialidade.Nome)

</td>

<td>

@Html.ActionLink("Edit", "Edit",

new { /* id=item.PrimaryKey */ }) |

@Html.ActionLink("Details", "Details",

new { /* id=item.PrimaryKey */ }) |

@Html.ActionLink("Delete", "Delete",

new { /* id=item.PrimaryKey */ })

</td>

</tr>

92

Casa do Código

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

}

</table>

Antes de compilar o projeto com o objetivo de testar o funcionamento da view,

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

0
Шрифт
Фон

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