none
Problemas com Modal JS no Asp.net Core MVC RRS feed

  • 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");}
    }

    domingo, 29 de abril de 2018 21:07