json对象作为application / x-www-form-urlencoded提交给mvc控制器

时间:2010-09-03 09:32:27

标签: asp.net-mvc json

我有一个数组:

var list = JSON.parse('[{"id" = "8", "description" = "test"},{"id" = "10", "description" = "test_2"}]');

我正在使用其他数据来使用jQuery的ajax方法发布:

var data = { start: 123403987, list };

为什么将值提交为:

start=123403987&list[0][id]=8&list[0][description] = "test"...

我期待的地方:

start=123403987&list[0].id=8&list[0].description = "test"...

2 个答案:

答案 0 :(得分:2)

因为那是默认的内容类型。您可以指定其他类型。还要确保您有一个有效的JSON对象(不是您的情况,使用:而不是=作为属性)或服务器端脚本可能会阻塞:

$.ajax({
    type: 'POST',
    url: '/foo',
    data: '[{ id: "8", description: "test" }, { id: "10", description: "test_2"}]',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(result) {    
        alert('ok');
    }
});

答案 1 :(得分:2)

您使用格式不正确的JSON,它应该是以下格式:

var list = JSON.parse('[{"id": "8", "description": "test"},{"id": "10", "description": "test_2"}]');