CRUD ASP.net CORE – 04 Inclusão de Registros

Formulário de inclusão de registros 

Código fonte: https://github.com/waltercoan/faegaspnetcore2019 

O primeiro passo para construção do formulário de inclusão de registros, é alterar nosso arquivo Index.cshtml para incluir um link antes da tabela para chamar a nova Action dentro do nosso controlador. 

Em seguida vamos alterar o código da classe ClienteController.cs para incluir uma nova Action chamada Form, e vamos anotar nossa Action com [HttpGet] 

Em seguida, dentro da pasta Views vamos criar um novo arquivo chamado Form.cshtml, neste arquivo vamos criar nosso formulário HTML. Utilizamos o @model para realizar o binding desta tela com a classe de modelo Client. Em seguida utilizamos o comando @using para definir o escopo do nosso formulário HTML que será gerado pelo comando Html.BeginForm(“actionname”,”controllername). Dentro desta estrutura criamos uma div para cada campo utilizando a classe form-group da biblioteca Bootstrap. Utilizamos o comando @Html.LabelFor para gerar o label, o @Html.EditorFor para gerar o campo input e o @Html.ValidationMessageFor para gerar eventuais mensagens de erro. 

Código do formulário. 

@model empresaapp.Models.Client; 

@{ 

ViewData[“Title”] = “Cliente”; 

<h2>Cliente</h2> 

@using (Html.BeginForm(“Form”,”Client”)){ 

<div class=”form-group”> 

@Html.LabelFor(m => m.Name) 

@Html.EditorFor(m => m.Name) 

@Html.ValidationMessageFor(m => m.Name) 

</div> 

<div class=”form-group”> 

<button type=”submit” class=”btn btn-primary”>Save</button> 

</div> 

Ao executar a aplicação o botão novo será apresentado na tela principal. 

E ao ser acionado nos levará para nossa tela de formulário. 

Agora precisamos alterar o código do nosso Controlador para receber os dados do formulário e salvar no banco de dados. Primeiro vamos criar mais um método action com o nome de Form mas anotando com o [HttpPost] e recebendo uma instância de cliente. 

Agora precisamos alterar o código da nossa classe de serviço para realizar a ação de salvar o registro no banco de dados. Para isso altere o código da internet IClientService para incluir o método void Save(Client client); 

Por consequência nossa classe ClientService.cs precisa ser alterada para receber esse novo método que irá utilizar o Entity Framework através do atributo context para adicionar o novo cliente no sistema de controle de entidades e salvar as modificações no banco de dados. 

Em seguida, podemos retornar ao código da classe ClientController.cs e no método action Form anotado com o HttpPost verificar se o estado do modelo é valido e em seguida chamar o serviço para incluir o objeto, e redirecionar para a action Index. Caso o modelo não seja válido o mesmo objeto cliente será redirecionado para a view Form, para que os erros de validação possam ser mostrados. 

Execute a aplicação e verifique se o cadastro esta funcionando. 

Em seguida, vamos alterar nossa classe model Client para incluir as anotações Display definindo o nome de apresentação do campo e que o campo é obrigatório, definindo a mensagem de erro. 

Execute a aplicação novamente, clique no botão novo e no botão Save. Observe que a mensagem de erro será apresentada.