Asp.net核心MVC中的Post Ajax问题

时间:2019-03-14 22:12:38

标签: ajax asp.net-core asp.net-core-mvc

我无法将要手动创建的模型发送到控制器。当我发送请求时,它带有空属性。发生问题是阻碍转换的原因。有人知道如何帮助我吗?

enter image description here

var operadoraChamadas = {
    Id: 0,
    Descricao: 'rssrrssr',
    PadraoSistema: true
};

var requestData = { operadoraChamadasViewModel: operadoraChamadas}

$.ajax({
    url: "/pessoa-gerenciar/changeFormaContato",
    type: "POST",
    data: JSON.stringify(requestData),
    contentType: "application/json",
    dataType: "json",
    success: function (result) {
        alert('ok');
    },
    error: function () {
        alert("Oops! Algo deu errado.");
        console.log(requestData);
    }
});


[HttpPost]
[Route("pessoa-gerenciar/changeFormaContato")]
public IActionResult changeFormaContato(OperadoraChamadaViewModel operadoraChamadaViewModel)
{
    //ViewBag.indice_new = indice;
    //return PartialView("~/Views/Pessoa/PessoaContato/_PessoaContatoAdd.cshtml", _pessoaContatoAppService.CreateNew(pessoaNatureza, formaContatoId));
    return null;
}

ViewModel:

public class OperadoraChamadaViewModel
{
    [Key]
    [DisplayName("ID")]
    public int Id { get; set; }

    [Required(ErrorMessage = "A Descrição é obrigatória")]
    [MaxLength(50)]
    [DisplayName("Descricao")]
    public string Descricao { get; set; }

    [DisplayName("Padrão do Sistema")]
    public bool PadraoSistema { get; set; }
}

1 个答案:

答案 0 :(得分:1)

ASP.NET Core需要向参数添加[FromBody]属性以解析application/json内容

[HttpPost]
[Route("pessoa-gerenciar/changeFormaContato")]
public IActionResult changeFormaContato([FromBody] OperadoraChamadaViewModel operadoraChamadaViewModel)