gpt4 book ai didi

javascript - 使用 MVC3 嵌套 JSON

转载 作者:行者123 更新时间:2023-11-30 06:03:29 26 4
gpt4 key购买 nike

我一直在四处寻找,到目前为止我还没有找到解决方案。如果我有一些带有嵌套对象的 JSON 发布到我的 Controller ,我怎样才能让它正确绑定(bind)到对象。我的代码非常适用于没有任何嵌套形式的任何对象。解决方案,有人吗?

var object = { "RandomString": "ASDFASDF" };
var nestedobject = { "AnotherString": "ASDFASDF", "Object": object };

$.ajax({
type: 'POST',
url: 'Controller/Method',
data: nestedobject,
dataType: 'json',
success: callback
});

最佳答案

只要服务器知道类型,嵌套对象的反序列化应该是完美的......

如果您使用 MVC3 的 JsonValueProviderFactory,您必须确保对您传递的数据进行 JSONify 化,并使用如下所示的适当内容类型...

当为 $.ajax 调用将对象传递给 data 时,jQuery 的默认行为是为对象创建一个 KVP,这可能更适合标准表单提交或查询字符串值,这就是为什么您必须 JSON.stringify 数据。

var o = { "RandomString": "ASDFASDF" };
var nestedobject = { "AnotherString": "ASDFASDF", "SomeObject": o };

$.ajax({
type: 'POST',
url: 'Controller/Method',
data: JSON.stringify(nestedobject),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: callback
});

使用 JsonValueProviderFactory 应该正确反序列化参数并映射到 Controller 操作签名,如下所示。

public ActionResult Method(string AnotherString, SomeType SomeObject) { /* ... */ }

public class SomeType {
public string RandomString {get;set;}
}

解决方案

为了完整起见,我想把它放在这里。我使用了他给我的代码,但主要问题是我需要用 SerializableAttribute 标记对象。谢谢!

关于javascript - 使用 MVC3 嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com