MVC:如何通过AJAX将敲除对象序列化为JSON属性

时间:2014-02-16 21:46:25

标签: ajax asp.net-mvc json knockout.js

我正在尝试序列化一个敲除对象并将其传递给名为 multipleCharge 的JSON属性。

这是通过Get方法将数据发送到mvc控制器的ajax代码

        $.ajax({
            url: _url,
            type: 'GET',
            //data: { multipleCharge: ko.mapping.toJS(_vm)},
            data: { multipleCharge : { AccountId : 2 } },
            dataType: 'json'});

这就是方法

[HttpGet]
public HttpResponseMessage GetSalesInvoiceMultipleCharge
    ([FromUri]MultipleChargeDto multipleCharge)
{
    ...
}

请注意,ajax方法有一个注释行。使用硬编码的行,它可以工作,multipleCharge对象不是null,但是如果我取消注释另一行,那么在我的浏览器中这是一个错误的请求。

看看这个。

enter image description here

enter image description here

了解发生了什么。使用Chrome控制台,它看起来不错;所以我无法确定错误。

1 个答案:

答案 0 :(得分:0)

可能是网址很长的IIS问题 请参阅此Issue with URL length in IIS7 (Windows Server 2008)问题和相关答案 另请参阅此http://www.iis.net/configreference/system.webserver/security/requestfiltering文档 您可以尝试通过编辑web.config来解决此问题。但是你也可以使用POST方法而不是GET,并在请求体中发送你的数据。