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

Шрифт
Фон

voltaremos à master page onde se encontra definida a estrutura de layout do aplicativo e adicionaremos um novo item ao menu principal para que este nos leve, então, até o cadastro de médicos.

Para isso, na Solution Explorer, abra o arquivo Layout.cshtml que se encontra no diretório Views. Note que na estrutura HTML da página, possuímos uma lista

(<ul>) com a classe nav atribuída. É justamente nesta lista que os itens do menu devem ser adicionados. Como você poderá notar, ele já possui um link para a página inicial do site.

A listagem 7 mostra o código necessário para a criação do menu. Nele, você

utilizará uma HTML Helper do Razor que cria um link no momento da renderi-

zação, ou seja, a tag <a> do HTML. Para que o helper chamado ActionLink possa funcionar corretamente, devemos informar 3 parâmetros: o texto a ser exibido pelo link, a action que será chamada por ele e o controller ao qual a action pertence.

Listagem 5.7 - Criação do item de menu para Médicos:

<ul class="nav navbar-nav">

<li class="active"><a href="#">Home</a></li>

<li id="menuMedicos">

@Html.ActionLink("Médicos", %%Index%%, "Medicos")

</li>

</ul>

Agora sim. Ao compilar o projeto, você verá que a aplicação exibe um item de

menu chamado Médicos. Ao clicar no menu, você será redirecionado para a URL

/medicos. Evidentemente, nenhum médico será exibido na página, uma vez que

não adicionamos médicos ainda. O importante aqui é notar que já é possível ver o título da página, um link para criar novos médicos e o cabeçalho da tabela (grid). A figura 5.6 demonstra a página em execução.

93

5.4. Cadê meu médico: CRUDs

Casa do Código

Figura 5.6: Cadastro de Médicos

Como já possuímos nossa primeira action e view construídas (onde o usuário

poderá ver a lista de médicos cadastrados), estamos aptos a dar o passo seguinte, isto é, construir o formulário de cadastro de novos médicos. Esta tela de cadastro estará disponível através da URL /Medicos/Adicionar. Com base nesta URL e no CoC

do MVC, sabemos que o nome de nossa próxima action deverá ser Adicionar.

Assim, no arquivo MedicosController na Solution Explorer, adicione uma

nova Action chamada Adicionar. Esta action possui natureza um pouco diferente daquela que criamos nos passos anteriores: além de retornar uma view para o cadastro do médico, utilizaremos dois novos recurso que o framework MVC disponibiliza

o ViewBag e SelectedList.

Vimos na modelagem do sistema que os médicos possuem em suas informações

básicas a Cidade de atuação e sua Especialidade. No formulário de cadastro do Mé-

dicos,

essas informações serão apresentadas em um ComboBox (ou Dropdownlist).

No caso de HTML, o ComboBox é representado pelo elemento select.

Podemos utilizar o ViewBag para transferir dados do Controller para a View. Ele é uma propriedade do tipo dynamic, por isso podemos criar propriedades dinami-camente. Em nossa action criamos duas propriedades, IDCidade e IDEspecialidade, cada uma com a lista de Cidades e Especialidades que mais adiante será apresentada ao usuário.

94

Casa do Código

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

Nas propriedades dinâmicas da ViewBag retornarmos já o elemento que será

apresentado na View. Para isso utilizamos o helper SelectList você verá mais sobre os Helpers no próximo capítulo sobre Views.

A listagem 8 apresenta o código referente à action Adicionar.

Listagem 5.8 - Action adicionar:

public ActionResult Adicionar()

{

ViewBag.IDCidade = new SelectList(db.Cidades, "IDCidade", "Nome"); ViewBag.IDEspecialidade = new SelectList(db.Especialidades,

"IDEspecialidade",

"Nome");

return View();

}

Da mesma forma que fizemos para adicionar a view Index, faremos também

para criar a view Adicionar, com a diferença, entretanto, de que agora escolheremos o template Create.

Após efetuar a criação, o Visual Studio abrirá automaticamente o arquivo da

view. Seu código deverá estar parecido com aquele apresentado pela listagem 9.

Note que, no lugar de uma tabela para listar registros já cadastrados, o template Create gerou um formulário para o preenchimento dos dados do model.

Listagem 5.9 - View Adicionar:

@model CadeMeuMedico.Models.Medico

@{

ViewBag.Title = "Adicionar";

}

<h2>Adicionar</h2>

@using (Html.BeginForm()) {

@Html.AntiForgeryToken()

@Html.ValidationSummary(true)

<fieldset>

<legend>Medico</legend>

95

5.4. Cadê meu médico: CRUDs

Casa do Código

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

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

0
Шрифт
Фон

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