C# ASP.NET控制器未从Ajax POST调用接收数据

C# ASP.NET控制器未从Ajax POST调用接收数据,c#,asp.net-mvc,asp.net-ajax,C#,Asp.net Mvc,Asp.net Ajax,我基本上已经回答了所有的问题,但似乎我遗漏了一些基本的东西 我有一个简单的课程: public class Recebe { public string Name { get; set; } public string Email { get; set; } } 控制器后操作: [HttpPost] public IActionResult ToggleLikeClicked(Recebe recebe) { return Json("Retorno"); } 还有一

我基本上已经回答了所有的问题,但似乎我遗漏了一些基本的东西

我有一个简单的课程:

public class Recebe
{
    public string Name { get; set; }
    public string Email { get; set; }
}
控制器后操作:

[HttpPost]
public IActionResult ToggleLikeClicked(Recebe recebe)
{
    return Json("Retorno");
}
还有一个Ajax调用:

$.ajax({
     type: 'POST',
     url: '/StartUps/ToggleLikeClicked',
     contentType: 'application/json',
     dataType: 'json',
     data: JSON.stringify({
          'Name': 'Sergio',
           'Email': 'sergio@difiore.com.br'
     }),
     beforeSend: function () {
        console.log('Before send');
     },
     success: function (response) {
        console.log('success');
        console.log(response);
      },
      complete: function () {
         console.log('completed');
      },
      error: function (jqXHR, textStatus, errorThrown) {
          console.log('Status: ' + jqXHR.status + '; Error: ' + jqXHR.responseText);
      },
  });
从浏览器控制台中,我知道整个过程都已执行,但在调试时,“receive”为空


有什么问题吗?

尝试编辑要发送到的JSON:

{
    'name': 'Sergio',
    'email': 'sergio@difiore.com.br'
}
您还可以尝试将[FromBody]属性添加到控制器中的参数:

public IActionResult ToggleLikeClicked([FromBody] Recebe recebe)

我怀疑您正在创建的json与
Recebe
的“形状”不一样。只需先发送一个字符串值,然后检查它的命中开关likelicked。作为记录,它与[FromBody]一起工作,并且必须保留json.stringify。