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.
