1
I need to pass 3 parameters to my controller, but the values are not enough:
- Personal Contact Personal Modelcontact Contact Information: Complex parameter (class with properties);
- int formaContactIdChange: Simple integer parameter;
Personal natureNature: Enum type parameters.
[HttpPost] [Route("pessoa-gerenciar/changeFormaContato")] public IActionResult ChangeFormaContato([FromBody] PessoaContatoViewModel pessoaContatoViewModel, int formaContatoIdChange, PessoaNatureza pessoaNatureza) { //ViewBag.indice_new = indice; //return PartialView("~/Views/Pessoa/PessoaContato/_PessoaContatoAdd.cshtml", _pessoaContatoAppService.CreateNew(pessoaNatureza, formaContatoId)); return null; } var formaContatoIdPrevious = "0"; $("#div-contatos .row").bind("click", ".sel-forma-contato", function (e) { //Forma de contato selecionada antes de alterar formaContatoIdPrevious = $(this).closest('.row').find('.sel-forma- contato').val(); }).on("change", ".sel-forma-contato", function (e) { //Pegar Índice da row var rowIndice = $(this).closest('.row').index(); //Pegando os valores dos Fields var pessoaNatureza = $('#pessoaNatureza').val(); var formaContatoIdChange = $(this).closest('.row').find('.sel-forma- contato').val(); //Forma de contato selecionada depois de alterar var pessoaContatoViewModel = { Id: $(this).closest('.row').find('.hid-id').val(), PessoaId: $(this).closest('.row').find('.hid-pessoaId').val(), FormaContatoId: parseInt(formaContatoIdPrevious), FormaContatoTipoId: $(this).closest('.row').find('.sel-contato-tipo').val(), Contato: $(this).closest('.row').find('.txt-contato').val(), Observacao: $(this).closest('.row').find('.txt-observacao').val(), ContatoPrincipal: $(this).closest('.row').find('.ckb-contato-principal').is(":checked") }; //Telefone, Celular ou Fax switch (formaContatoIdPrevious) { case "1": case "2": case "3": var pessoaContatoChamadaViewModel = { ChamadaTipo: $(this).closest('.row').find('.sel-chamada-tipo').val(), OperadoraChamadaId: $(this).closest('.row').find('.sel-operadora-chamada').val(), CodigoDDI: $(this).closest('.row').find('txt-ddi').val(), CodigoDDD: $(this).closest('.row').find('txt-ddd').val(), Ramal: $(this).closest('.row').find('txt-ramal').val() }; pessoaContatoViewModel.PessoaContatoChamadaViewModel = {}; pessoaContatoViewModel.PessoaContatoChamadaViewModel = pessoaContatoChamadaViewModel; break; case "5": //E-mail var pessoaContatoCorreioEletronicoViewModel = { UsarParaNotaFiscalEmitida: $(this).closest('.row').find('ckb-usar-nf-emitida').is(":checked"), UsarParaOrdemCompra: $(this).closest('.row').find('ckb-usar-ordem-compra').is(":checked"), UsarParaPedidoVenda: $(this).closest('.row').find('ckb-usar-pedido-venda').is(":checked"), UsarParaMarketing: $(this).closest('.row').find('ckb-usar-marketing').is(":checked") }; pessoaContatoViewModel.PessoaContatoCorreioEletronicoViewModel = {}; pessoaContatoViewModel.PessoaContatoCorreioEletronicoViewModel = pessoaContatoCorreioEletronicoViewModel; break; case "7": //Blog e Mídia Social case "8": var pessoaContatoMidiaSocialViewModel = { MidiaSocialId: $(this).closest('.row').find('sel-midia-social').val() }; pessoaContatoViewModel.PessoaContatoMidiaSocialViewModel = {}; pessoaContatoViewModel.PessoaContatoMidiaViewModel = pessoaContatoMidiaSocialViewModel; break; } var dados = { pessoaContatoViewModel: pessoaContatoViewModel, formaContatoIdChange: formaContatoIdChange, pessoaNatureza: pessoaNatureza }; $.ajax({ url: "/pessoa-gerenciar/changeFormaContato", type: "POST", data: JSON.stringify({ pessoaContatoViewModel: pessoaContatoViewModel, formaContatoIdChange: formaContatoIdChange, pessoaNatureza: pessoaNatureza }), contentType: "application/json", dataType: "json", success: function (result) { formaContatoIdPrevious = "0"; alert('ok'); }, error: function () { formaContatoIdPrevious = "0"; alert("Oops! Algo deu errado."); } }); formaContatoIdPrevious = "0";
});
Someone knows what’s wrong?
Is it because you are using the same parameter and variable names.
– Fabio
What is presenting in
Network
in Chrome Devtools, for example? How is it being sent? And what response is it returning?– Vinícius Lima