Ajax .Net核心MVC Post参数绑定为空

Ajax .Net核心MVC Post参数绑定为空,ajax,.net-core,asp.net-core-mvc,asp.net-core-3.1,Ajax,.net Core,Asp.net Core Mvc,Asp.net Core 3.1,我有一个MVC控制器负责集团实体 我的[HttpPost]方法处理新组的创建。在参数中,我尝试将请求绑定到一个简单的GroupModelDTO 问题是参数始终为“null”。我还添加了.AddNewtonsoftJson()到我的服务集合 GroupController public IActionResult Create() { return View(); } [HttpPost] public async Task<IActionResult> Create([Fr

我有一个MVC控制器负责集团实体

我的
[HttpPost]
方法处理新组的创建。在参数中,我尝试将请求绑定到一个简单的
GroupModel
DTO

问题是参数始终为“null”。我还添加了
.AddNewtonsoftJson()到我的服务集合

GroupController

public IActionResult Create()
{
    return View();
}

[HttpPost]
public async Task<IActionResult> Create([FromBody] GroupModel group)
{
    var (result, groupId) = await _groupService.Create(group.Name, group.Roles);

    if (result.Succeeded)
    {
        return View("Index");
    }
    else
    {
        AddErrors(result);
        return Create();
    }
}
JS

function create() {

    var group = new Object();
    group.name = getGroupName();
    group.roles = getSelectedRoles();

    /* Ajax request */
    $.ajax({
        url: BASE_URL + 'Group/Create',
        type: 'POST',
        data: JSON.stringify(group),
        dataType: "json",  
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            alert("success");
        },
        error: function () {
            alert("error");
        }
    });
}
我完全确定我错过了什么,我已经做了无数次了,但我就是想不出来


谢谢。

我想这可能是由于
组的数据格式造成的;group.roles=getSelectedRoles()我向它添加了示例数据,它成功了。
以下是一个已完成的演示:
组控制器:

public IActionResult Create()
        {
            return View();
        }

        [HttpPost]
        public async Task<IActionResult> Create([FromBody] GroupModel group)
        {
            return View();
        }
public IActionResult Create()
{
返回视图();
}
[HttpPost]
公共异步任务创建([FromBody]GroupModel组)
{
返回视图();
}
视图:

创建
@节脚本{
函数create(){
var group=新对象();
group.name=“a”;
group.roles=新数组();
组角色[0]=1;
组角色[1]=2;
/*Ajax请求*/
$.ajax({
url:“创建”,
键入:“POST”,
数据:JSON.stringify(组),
数据类型:“json”,
contentType:'application/json;charset=utf-8',
成功:功能(数据){
警惕(“成功”);
},
错误:函数(){
警报(“错误”);
}
});
}
}
结果:

public IActionResult Create()
        {
            return View();
        }

        [HttpPost]
        public async Task<IActionResult> Create([FromBody] GroupModel group)
        {
            return View();
        }
<button onclick="create()">Create</button>
@section scripts{ 
    <script type="text/javascript">
    function create() {

        var group = new Object();
        group.name = "a";
        group.roles = new Array();
        group.roles[0] = 1;
        group.roles[1] = 2;
    /* Ajax request */
        $.ajax({
            url: 'Create',
            type: 'POST',
            data: JSON.stringify(group),
            dataType: "json",
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                alert("success");
            },
            error: function () {
                alert("error");
            }
        });
        
    }
    </script>
}