我想将嵌套的 JavaScript 对象传递给我的 ASP.NET MVC 操作方法。 这是代码(简化):
$.getJSON('some/url',
{
index: pageIndex,
pageSize: pageSize,
filter:{one:'one',two:'two',three:'three'}
}, someCallBack(msg)
);
我正在使用 jQuery 并实现了我的插件,该插件延迟地从服务器获取分页数据。它很有用,但现在我需要传递一个带有可变数量的属性过滤器的 JavaScript Filter
对象。在服务器端,我得到一个对象数组,其中第一项是字符串,包含 [Object object]
文字。
显然,我的嵌套对象(filter
)没有在服务器端扩展并转换为对象(hash
)。这可能吗?我不想对我的过滤器进行硬编码,因为该插件旨在普遍应用。
非常感谢。
最佳答案
您可以使用System.Web.Script.Serialization.JavaScriptSerializer
发送/接收JSON序列化数据:
JavaScriptSerializer js = new JavaScriptSerializer();
Filter f = js.Deserialize<Filter>(json_str);
更多详情here 。要对 JSON 数据进行编码以发送到服务器,请使用 JavaScript 的 JSON 序列化库,例如 json2.js 。然后发送如下查询:
var filter = {field1: 'value1', field2: 'value2'}
$.ajax({
type: "POST",
url: '/server/path',
data: { filter: JSON2.stringify(filter) },
dataType: "json",
success: function(data) {
// do something
}
});
关于javascript - 如何将嵌套的 JavaScript 对象传递给 ASP.NET MVC 操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164539/