I need to do something that is easy to talk, but a bit difficult to implement: Whenever in my view, a Person Nature is selected, one should trigger an event that triggers a postback, send the viewmodel to Create action so that it is edited, then it is returned to my view and my @Model is updated with the new viewmodel changed. I need to do this via JavaScript. I've already done a few posts on the subject, but nobody wants to help me, so I decided to start from scratch. Does anyone know how to help me?
[HttpPost]
[Authorize(Policy = "CanWriteCustomerData")]
[Route("pessoa-gerenciamento/cadastrar-novo")]
[ValidateAntiForgeryToken]
public IActionResult Create(PessoaViewModel pessoaViewModel)
{
var pessoa = pessoaViewModel.Id = 1000;
return View(pessoa);
}
public class PessoaViewModel
{
[DisplayName("Código")]
public int Id { get; set; }
[DisplayName("Natureza")]
[Required(ErrorMessage ="Escolha uma Natureza")]
public PessoaNatureza PessoaNatureza { get; set; }
}
@using SistemaComercial.Domain.ValueObjects
@model SistemaComercial.Application.ViewModels.Pessoa.PessoaViewModel
@{
ViewData["Title"] = "Cadastrar Nova Pessoa";
}
<!-- begin snippet: js hide: false console: true babel: false -->
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script>
.....................Bloco JS
</script>
}
<form asp-controller="Pessoa" asp-action="Create">
<div class="form-group">
<label asp-for="PessoaNatureza" class="col-md-2 control-label"></label>
<div class="col-md-3">
<select id="PessoaNatureza" asp-for="PessoaNatureza" asp-
items="Model.PessoasNaturezas" class="form-control">
<option value="" data-id="@Model.PessoaNatureza.ObterIdEnum()">--SELECIONE--</option>
</select>
<span asp-validation-for="PessoaNatureza" class="text-danger"></span>
</div>
</div>
</form>