Inquiridor
Problemas com Modal JS no Asp.net Core MVC

Pergunta
-
não sei se fiz corretamente, mas já perdi a conta das vezes que refiz esse CRUD usando Modals e não deu muito certo. Preciso muito de ajuda... Bom vamos ao problema: Preciso implementar um CRUD usando Modal. Criei as Views (Index, Edit, Details, Delete e Create)... O processo deve ser feito a partir da view Index no qual tenho uma grid com os botões de comando. Ainda na view Index, criei um bloco onde as views modais devem ser chamadas.
<div class="modal fade modal-fade-in-scale-up" data-backdrop="static" id="modal" tabindex='-1'> </div>
Não sei se minhas controllers ou até mesmo meu javascript estão mal bolados... Alguém saberia como me ajudar? Vou postar o código das views e das actions.
[HttpGet] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/cadastrar-novo")] public IActionResult Create() { return PartialView(_pessoaSituacaoAppService.CreateNew()); } [HttpPost] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/cadastrar-novo")] [ValidateAntiForgeryToken] public IActionResult Create(PessoaSituacaoViewModel pessoaSituacaoViewModel) { if (!ModelState.IsValid) return View(pessoaSituacaoViewModel); _pessoaSituacaoAppService.Register(pessoaSituacaoViewModel); if (IsValidOperation()) ViewBag.Sucesso = "Situação de Pessoa Cadastrada!"; return View(pessoaSituacaoViewModel); } [HttpGet] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/editar-situacao/{id:int}")] public IActionResult Edit(int? id) { if (id == null) { return NotFound(); } var pessoaViewModel = _pessoaSituacaoAppService.GetById(id.Value); if (pessoaViewModel == null) { return NotFound(); } return PartialView(pessoaViewModel); } [HttpPost] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/editar-situacao/{id:int}")] [ValidateAntiForgeryToken] public IActionResult Edit(PessoaSituacaoViewModel pessoaSituacaoViewModel) { if (!ModelState.IsValid) return View(pessoaSituacaoViewModel); _pessoaSituacaoAppService.Update(pessoaSituacaoViewModel); if (IsValidOperation()) ViewBag.Sucesso = "Situação de Pessoa Atualizada!"; return View(pessoaSituacaoViewModel); } [HttpGet] [AllowAnonymous] [Route("situacoes-gerenciamento/situacao-detalhes/{id:int}")] public IActionResult Details(int? id) { if (id == null) { return NotFound(); } var pessoaSituacaoViewModel = _pessoaSituacaoAppService.GetById(id.Value); if (pessoaSituacaoViewModel == null) { return NotFound(); } return PartialView(pessoaSituacaoViewModel); } [HttpGet] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/remover-situacao/{id:int}")] public IActionResult Delete(int? id) { if (id == null) { return NotFound(); } var pessoaSituacaoViewModel = _pessoaSituacaoAppService.GetById(id.Value); if (pessoaSituacaoViewModel == null) { return NotFound(); } return View(pessoaSituacaoViewModel); } [HttpPost, ActionName("Delete")] [Authorize(Policy = "CanWritePessoaSituacaoData")] [Route("situacoes-gerenciamento/remover-situacao/{id:int}")] [ValidateAntiForgeryToken] public IActionResult DeleteConfirmed(int id) { _pessoaSituacaoAppService.Remove(id); if (!IsValidOperation()) return View(_pessoaSituacaoAppService.GetById(id)); ViewBag.Sucesso = "Situação de Pessoa Excuída!"; return RedirectToAction("Index"); }
@using SistemaComercial.Domain.ValueObjects @model SistemaComercial.Application.ViewModels.PessoaSituacao.PessoaSituacaoViewModel @{ ViewData["Title"] = "Editar Situação de Pessoa"; } <div class="modal-dialog" style="width: 55%; height: 500px;"> <div class="modal-content"> <form asp-action="Edit" id="frmEdit"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title"> @ViewData["Title"] </h4> </div> @Html.AntiForgeryToken() <div class="modal-body"> <div class="form-horizontal"> <vc:summary /> <div class="form-group"> <label asp-for="Id" class="col-md-3 control-label"></label> <div class="col-md-2"> <input asp-for="Id" class="form-control" disabled /> <span asp-validation-for="Id" class="text-danger"></span> </div> </div> <div class="form-group"> <label asp-for="Descricao" class="col-md-3 control-label"></label> <div class="col-md-6"> <input asp-for="Descricao" class="form-control text-uppercase" /> <span asp-validation-for="Descricao" class="text-danger"></span> </div> </div> <div class="form-group"> <label asp-for="PessoaTipo" class="col-md-3 control-label"></label> <div class="col-md-3"> <select asp-for="PessoaTipo" asp-items="Model.PessoasTipos" data-toggle="dropdown" data-plugin="selectpicker" title="Selecione uma opção" class=" form-control show-tick show-menu-arrow"></select> <span asp-validation-for="PessoaTipo" class="text-danger"></span> </div> <div class="btn-group dropdown"> <button type="button" class="btn btn-outline btn-default dropdown" id="exampleBulletDropdown1" data-toggle="dropdown" aria-expanded="false"> Default <span class="caret"></span> </button> <ul class="dropdown-menu bullet" aria-labelledby="exampleBulletDropdown1" role="menu"> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Another action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Something else here</a></li> <li class="divider" role="presentation"></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Separated link</a></li> </ul> </div> </div> <div class="form-group"> <div class="col-md-3"> <div class="checkbox-custom checkbox-primary"> <label asp-for="PadraoSistema"></label> <input asp-for="PadraoSistema" disabled /> </div> <span asp-validation-for="PadraoSistema" class="text-danger"></span> </div> </div> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-info"><i class="icon wb-check" aria-hidden="true"></i> Gravar</button> @*<a asp-action="Index" class="btn btn-danger"> <span title="Retornar à Lista" class="icon wb-arrow-left"></span> Retornar à lista </a>*@ <a class="btn btn-danger" data-dismiss="modal"> <span title="Cancelar" class="icon wb-close"></span> Cancelar </a> </div> </form> </div> </div> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} }
@using SistemaComercial.Domain.ValueObjects @model SistemaComercial.Application.ViewModels.PessoaSituacao.PessoaSituacaoViewModel @{ ViewData["Title"] = "Cadastrar Situação de Pessoa"; } <div class="modal-dialog" style="width: 55%; height: 500px;"> <div class="modal-content"> <form asp-action="Create" id="frmCreate"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title"> @ViewData["Title"] </h4> </div> @Html.AntiForgeryToken() <div class="modal-body"> <div class="form-horizontal"> <vc:summary /> <div class="form-group"> <label asp-for="Id" class="col-md-3 control-label"></label> <div class="col-md-2"> <input asp-for="Id" class="form-control" /> <span asp-validation-for="Id" class="text-danger"></span> </div> </div> <div class="form-group"> <label asp-for="Descricao" class="col-md-3 control-label"></label> <div class="col-md-6"> <input asp-for="Descricao" class="form-control text-uppercase" /> <span asp-validation-for="Descricao" class="text-danger"></span> </div> </div> <div class="form-group"> <label asp-for="PessoaTipo" class="col-md-3 control-label"></label> <div class="col-md-3"> <select asp-for="PessoaTipo" asp-items="Model.PessoasTipos" data-toggle="dropdown" data-plugin="selectpicker" title="Selecione uma opção" class=" form-control show-tick show-menu-arrow"></select> <span asp-validation-for="PessoaTipo" class="text-danger"></span> </div> <div class="btn-group dropdown"> <button type="button" class="btn btn-outline btn-default dropdown" id="exampleBulletDropdown1" data-toggle="dropdown" aria-expanded="false"> Default <span class="caret"></span> </button> <ul class="dropdown-menu bullet" aria-labelledby="exampleBulletDropdown1" role="menu"> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Another action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Something else here</a></li> <li class="divider" role="presentation"></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Separated link</a></li> </ul> </div> <div class="btn-group dropdown"> <button type="button" class="btn btn-outline btn-default dropdown" id="exampleBulletDropdown1" data-toggle="dropdown" aria-expanded="false"> Default <span class="caret"></span> </button> <ul class="dropdown-menu bullet" aria-labelledby="exampleBulletDropdown1" role="menu"> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Another action</a></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Something else here</a></li> <li class="divider" role="presentation"></li> <li role="presentation"><a href="javascript:void(0)" role="menuitem">Separated link</a></li> </ul> </div> </div> <div class="form-group"> <div class="col-md-3"> <div class="checkbox-custom checkbox-primary"> <label asp-for="PadraoSistema"></label> <input asp-for="PadraoSistema" disabled /> </div> <span asp-validation-for="PadraoSistema" class="text-danger"></span> </div> </div> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-info"><i class="icon wb-check" aria-hidden="true"></i> Gravar</button> @*<a asp-action="Index" class="btn btn-danger"> <span title="Retornar à Lista" class="icon wb-arrow-left"></span> Retornar à lista </a>*@ <a class="btn btn-danger" data-dismiss="modal"> <span title="Cancelar" class="icon wb-close"></span> Cancelar </a> </div> </form> </div> </div> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} }