Javascript 如何将JSON对象从ajax传递到ASP.net页面

Javascript 如何将JSON对象从ajax传递到ASP.net页面,javascript,c#,json,asp.net-core,Javascript,C#,Json,Asp.net Core,我有以下代码通过POST将JSON对象发送到MVC控制器,我不知道为什么它不工作,有什么建议吗 JS 模型 任务 [HttpPost(“更新”)] 公共异步任务更新(IList项) {...} 任务运行,但JSON对象从未反序列化到模型,我总是得到计数为0的项。您必须更改代码数据:{“项”:JSON.stringify(项)},因为您必须发送Post数据名 然后将代码更改为此代码 function Update() { var objects = $(".Classes

我有以下代码通过POST将JSON对象发送到MVC控制器,我不知道为什么它不工作,有什么建议吗

JS

模型

任务

[HttpPost(“更新”)]
公共异步任务更新(IList项)
{...}

任务运行,但JSON对象从未反序列化到模型,我总是得到计数为0的项。

您必须更改代码
数据:{“项”:JSON.stringify(项)}
,因为您必须发送Post数据名 然后将代码更改为此代码

function Update()
    {
        var objects = $(".Classes");
        items = [];
        objects.each(function () {
            items .push({
                "Id": $(this).find(".input").attr('id'),
                "Value": $(this).find(".input2").val()
            });
        });
        $.ajax({
            type: "POST",
            url: "/A/Update",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("XSRF-TOKEN",
                    $('input:hidden[name="__RequestVerificationToken"]').val());
            },

            data:{"items":JSON.stringify(items)},

            contentType: "application/json",
            dataType: "json",
            success: function (response) {
            }
        });
    }

唯一的更改是使用
[FromBody]
让模型绑定系统从请求主体读取post数据并绑定到您的对象:

public async Task<JsonResult> Update([FromBody]IList<Update> items)
公共异步任务更新([FromBody]IList项)
也许这有帮助
[HttpPost("Update")]
        public async Task<JsonResult> Update(IList <Update> items)
        {...}
function Update()
    {
        var objects = $(".Classes");
        items = [];
        objects.each(function () {
            items .push({
                "Id": $(this).find(".input").attr('id'),
                "Value": $(this).find(".input2").val()
            });
        });
        $.ajax({
            type: "POST",
            url: "/A/Update",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("XSRF-TOKEN",
                    $('input:hidden[name="__RequestVerificationToken"]').val());
            },

            data:{"items":JSON.stringify(items)},

            contentType: "application/json",
            dataType: "json",
            success: function (response) {
            }
        });
    }
public async Task<JsonResult> Update([FromBody]IList<Update> items)