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

Шрифт
Фон

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

96

Casa do Código

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

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

@Html.ValidationMessageFor(model =>

model.AtendePorConvenio)

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

@Html.ValidationMessageFor(model

=> model.TemClinica)

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

97

5.4. Cadê meu médico: CRUDs

Casa do Código

<div class="editor-label">

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

</div>

<div class="editor-field">

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

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

</div>

<p>

<input type="submit" value="Create" />

</p>

</fieldset>

}

<div>

@Html.ActionLink("Back to List", %%Index%%)

</div>

Analisando o código recém-criado, é possível notar que o formulário apresenta

um campo chamado IDMedico para preenchimento. Veja, este campo refere-se

a um identity no banco de dados, ou seja, este valor será gerado automaticamente pelo GBD (Gerenciador de Banco de Dados) quando chegar a requisição de

gravação. Assim, faremos uma pequena alteração no HTML gerado para endereçar

este problema. Removeremos da view todo o código referente a esse campo no

formulário. A listagem 10 apresenta o trecho de código que deverá ser removido.

Listagem 5.10 - Código que deve ser removido:

<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>

Faremos ainda outra pequena alteração no HTML gerado.

Utiliza-

remos as propriedades da

ViewBag

para criar os Combos de nossa

tela.

Altere a linha

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

para

@Html.DropDownList("IDCidade", String.Empty),

e

a

li-

98

Casa do Código

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

nha

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

para

@Html.DropDownList("IDEspecialidade", String.Empty).

Pronto. Agora que possuímos o fomulário pronto e funcionando, precisamos

gravar os dados provenientes dele no banco de dados. Para isso, é preciso criar a action que receberá um model já com os dados que o usuário preencheu utilizando o formulário da view. Primeiro, é necessário compreender os verbos GET e POST do do protocolo HTTP. Apesar de mais verbos estarem disponíveis no HTTP (DELETE,

OPTIONS, entre outros), para a nossa aplicação de exemplo utilizaremos apenas GET

e POST.

Em linhas gerais, o verbo GET é utilizado para obter um recurso do servidor,

enquanto o verbo POST serve para adicionar um novo recurso. Por recurso, entenda páginas, imagens, estilos, scripts, dados etc.

A listagem 11 demostra o código da action que receberá, em um parâmetro,

o model preenchido pelo usuário na view. Além de validar o modelo e adicionar

no banco de dados se nenhuma inconsistência for encontrada, note que a action

também possui o nome Adicionar, entretanto, encontra-se decorada com o

atributo HttpPost. Desta forma, pelo atributo decorativo da Action, o ASP.NET

MVC consegue diferenciar os métodos com mesmo nome.

Listagem 5.11 - Action com atributo HttpPost:

public ActionResult Adicionar()

{

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

"IDEspecialidade",

"Nome");

return View();

}

[HttpPost]

public ActionResult Adicionar(Medico medico)

{

if (ModelState.IsValid)

{

db.Medicos.Add(medico);

db.SaveChanges();

return RedirectToAction(%%Index%%);

}

99

5.4. Cadê meu médico: CRUDs

Casa do Código

ViewBag.IDCidade = new SelectList(db.Cidades, "IDCidade",

"Nome",

medico.IDCidade);

ViewBag.IDEspecialidade = new SelectList(db.Especialidades,

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

0
Шрифт
Фон

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