我的服务器端有一个操作:
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 。
如何使这个简单的事情发挥作用?
此致
答案 0 :(得分:0)
如果您使用的是jquery 1.4,请尝试以下方法:
$.ajax({
url: 'Controller/Action',
type: 'post',
data: { Arr: [ 'abc', 'def' ] },
traditional: true,
dataType: 'json'
});
或者,如果您希望继续使用$.post()
:
$.post(
'Controller/Action',
$.param({ Arr: [ 'abc', 'def'] }, true),
null,
'json'
);