如何使json数组解析在服务器端工作

时间:2010-09-29 16:49:39

标签: c# jquery asp.net-mvc json

我的服务器端有一个操作:

public void Action(Container container)
{
}

容器是:

public class Container
{
   public string[] Arr;
}

从客户端,我正在以下面的方式调用此操作:

$.post("Controller/Action", { Arr: "abc" }, null, "json");

在此之后,容器中的 Arr 包含一个元素“ abc ”。

但是,在按照以下方式调用动作时:

$.post("Controller/Action", { Arr: ["abc", "def"] }, null, "json");

json数组没有在服务器端反序列化。容器中的 Arr NULL

如何使这个简单的事情发挥作用?

此致

1 个答案:

答案 0 :(得分:0)

如果您使用的是jquery 1.4,请尝试以下方法:

$.ajax({
    url: 'Controller/Action',
    type: 'post',
    data: { Arr: [ 'abc', 'def' ] },
    traditional: true,
    dataType: 'json'
});

注意traditional flag

或者,如果您希望继续使用$.post()

$.post(
    'Controller/Action', 
    $.param({ Arr: [ 'abc', 'def'] }, true), 
    null, 
    'json'
);