![](/img/trans.png)
[英]How to pass array in a JSON object from javascript to asp.net mvc controller method?
[英]How to pass a nested JavaScript object to ASP.NET MVC Action Method?
我想将嵌套的 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);
更多细节在这里。 要对 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
}
});
您可以使用以下 js lib json2 库,然后可以使用 stringify 方法来确保您的 json 格式正确以用于服务。
var data0 = {one:'one',two:'two',three:'three'}
var json = JSON2.stringify(data0 );
$.ajax({
type: "POST",
url: someServiceUrl,
data: json,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.