Javascript 如何在ASP.NET MVC控制器中正确发送和处理JSON对象?

Javascript 如何在ASP.NET MVC控制器中正确发送和处理JSON对象?,javascript,jquery,asp.net-mvc,model-binding,Javascript,Jquery,Asp.net Mvc,Model Binding,我正在使用ASP.NETMVC4,我正在尝试将JSON对象发送到接受 以下是我的javascript和jQuery: var jsonObject = { "PlantShipTo":{ "PlantID" : shipToID.toString() } }; $.ajax({ type: "POST", contentType: 'application/json; charset=utf-8', timeout: 15000,

我正在使用ASP.NETMVC4,我正在尝试将JSON对象发送到接受

以下是我的javascript和jQuery:

var jsonObject = {
    "PlantShipTo":{
        "PlantID" : shipToID.toString()
    }
};

$.ajax({
    type: "POST",
    contentType: 'application/json; charset=utf-8',
    timeout: 15000,
    url: "/Transfer/TransferOut",
    data: JSON.stringify(jsonObject),
    dataType: 'json',
    tradational: 'true',
    success: function (response) {
    }
});
在我的控制器中,我接受以下定义的“PlantShipTo”类型的对象:

public class PlantShipTo
{
    public int PlantID { get; set; }
}
为简洁起见,我将仅显示控制器定义:

public ActionResult TransferOut(PlantShipTo shipto)
{
    PlantShipTo p = shipto;
我希望MVC模型绑定将JSON识别为PlantShipTo对象,但当我在控制器中检查它时,该对象为null。下面是我的一些请求信息,由Fiddler提供。JSON看起来与我的“PlantShipTo”类匹配。我错过了什么

Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
{"PlantShipTo":{"PlantID":"2"}}

您认为JSON对象不太正确。检查正确的一个-

        var jsonObject = {
                "PlantID": YourVariable
        };

        $.ajax({
            url: "@Url.Action("TransferOut")",
            type: "POST",
            data: JSON.stringify(jsonObject),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: function (response) {
                alert(response.responseText);
        },
            success: function (response) {
                alert(response);
            }
        });
输出-


您的JSON对象不太正确。检查正确的一个-

        var jsonObject = {
                "PlantID": YourVariable
        };

        $.ajax({
            url: "@Url.Action("TransferOut")",
            type: "POST",
            data: JSON.stringify(jsonObject),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: function (response) {
                alert(response.responseText);
        },
            success: function (response) {
                alert(response);
            }
        });
输出-


您的JSON对象不太正确。检查正确的一个-

        var jsonObject = {
                "PlantID": YourVariable
        };

        $.ajax({
            url: "@Url.Action("TransferOut")",
            type: "POST",
            data: JSON.stringify(jsonObject),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: function (response) {
                alert(response.responseText);
        },
            success: function (response) {
                alert(response);
            }
        });
输出-


您的JSON对象不太正确。检查正确的一个-

        var jsonObject = {
                "PlantID": YourVariable
        };

        $.ajax({
            url: "@Url.Action("TransferOut")",
            type: "POST",
            data: JSON.stringify(jsonObject),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: function (response) {
                alert(response.responseText);
        },
            success: function (response) {
                alert(response);
            }
        });
输出-


只有当您发送的数据与控制器中指定的参数名称匹配时,MVC才能自动进行模型绑定

您可以更改JSON中根元素的名称以匹配参数名称:

var jsonObject = {
    "shipTo":{
        "PlantID" : shipToID.toString()
    }
};
或者删除根元素,以便MVC可以自动绑定到参数的属性:

var jsonObject = {
    "PlantID" : shipToID.toString()
};

只有当您发送的数据与控制器中指定的参数名称匹配时,MVC才能自动建模绑定

您可以更改JSON中根元素的名称以匹配参数名称:

var jsonObject = {
    "shipTo":{
        "PlantID" : shipToID.toString()
    }
};
或者删除根元素,以便MVC可以自动绑定到参数的属性:

var jsonObject = {
    "PlantID" : shipToID.toString()
};

只有当您发送的数据与控制器中指定的参数名称匹配时,MVC才能自动建模绑定

您可以更改JSON中根元素的名称以匹配参数名称:

var jsonObject = {
    "shipTo":{
        "PlantID" : shipToID.toString()
    }
};
或者删除根元素,以便MVC可以自动绑定到参数的属性:

var jsonObject = {
    "PlantID" : shipToID.toString()
};

只有当您发送的数据与控制器中指定的参数名称匹配时,MVC才能自动建模绑定

您可以更改JSON中根元素的名称以匹配参数名称:

var jsonObject = {
    "shipTo":{
        "PlantID" : shipToID.toString()
    }
};
或者删除根元素,以便MVC可以自动绑定到参数的属性:

var jsonObject = {
    "PlantID" : shipToID.toString()
};

传统的
传统的
传统的
传统的
传统的
传统的