在Asp.net核心MVC中发布Ajax的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Asp.net核心MVC中发布Ajax的问题相关的知识,希望对你有一定的参考价值。

我无法将我手动创建的模型发送到我的控制器。当我发送请求时,它会出现空的属性。有一些错误阻碍了转换。有谁知道如何帮助我?

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;
}

视图模型:

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; }
}
答案

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

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

以上是关于在Asp.net核心MVC中发布Ajax的问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC Ajax 错误处理

识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

如何使用ajax在asp.net mvc中上传多个图像

ASP.net MVC Core Razor 页面和 Ajax JQuery

ASP.NET MVC ajax数组,模型绑定问题。

ASP.NET MVC RedirectToAction 在从视图中发布 AJAX 后不起作用