0
I’m having trouble doing a post of a complex template using AJAX on Asp.net. Modelhave some properties that represent other Models, but at the moment, I just need to initialize them with NULL. I don’t know what’s missing, but my controller is getting "null" value... There is some problem in the conversion made on the client side. I did a test using a simple model with 3 fields (int, string and bool) and it worked correctly... I’m only having problems if I use this type of Model Quq quoted in the question. Is it something related to the properties set with NULL? Someone knows how to help me?
var pessoaContatoViewModel = {
Id: 0,
PessoaId: 0,
FormaContatoId: formaContatoId,
FormaContatoDescricao: '',
FormasContatos: null,
ContatosTipos: null,
FormaContatoTipoId: 0,
Contato: contato,
Observacao: observacao,
ContatoPrincipal: contatoPrincipal,
PessoaContatoChamadaViewModel: null,
PessoaContatoRedeSocialViewModel: null,
PessoaContatoEmailViewModel: null
};
$.ajax({
url: "/pessoa-gerenciar/changeFormaContato",
type: "POST",
data: JSON.stringify(pessoaContatoViewModel),
contentType: "application/json",
dataType: "json",
success: function (result) {
alert('ok');
},
error: function () {
alert("Oops! Algo deu errado.");
console.log(pessoaContatoViewModel);
}
});
[HttpPost]
[Route("pessoa-gerenciar/changeFormaContato")]
public IActionResult ChangeFormaContato([FromBody] PessoaContatoViewModel pessoaContatoViewModel)
{
//ViewBag.indice_new = indice;
//return PartialView("~/Views/Pessoa/PessoaContato/_PessoaContatoAdd.cshtml", _pessoaContatoAppService.CreateNew(pessoaNatureza, formaContatoId));
return null;
}
public class PessoaContatoViewModel
{
[Key]
public int Id { get; set; }
public int PessoaId { get; set; }
[DisplayName("Forma de Contato")]
[Required(ErrorMessage = "Escolha a Forma de Contato")]
[JsonConverter(typeof(StringEnumConverter))]
public int FormaContatoId { get; set; }
public string FormaContatoDescricao { get; set; }
public IEnumerable<SelectListItem> FormasContatos { get; set; }
public IEnumerable<SelectListItem> ContatosTipos { get; set; }
[DisplayName("Forma de Contato")]
[Required(ErrorMessage = "Selecione uma Forma de Contato")]
public int FormaContatoTipoId { get; set; }
[DisplayName("Contato")]
[Required(ErrorMessage = "O campo Contato é obrigatório")]
[MaxLength(100, ErrorMessage = "O campo {0} deve ter no máximo {1} caracteres")]
public string Contato { get; set; }
[DisplayName("Observação")]
[MaxLength(150, ErrorMessage = "O campo {0} deve ter no máximo {1} caracteres")]
public string Observacao { get; set; }
[DisplayName("Principal")]
public bool ContatoPrincipal { get; set; }
public FormaContatoTipoViewModel FormaContatoTipoViewModel { get; set; }
public PessoaContatoChamadaViewModel PessoaContatoChamadaViewModel { get; set; }
public PessoaContatoRedeSocialViewModel PessoaContatoRedeSocialViewModel { get; set; }
public PessoaContatoEmailViewModel PessoaContatoEmailViewModel { get; set; }
}