为什么json的3级嵌套模型绑定不起作用?
使用2级进行测试,比如在LevelTwo上添加字符串属性,可以正常工作,但3级不是吗?这是设计,错误,还是我错过了什么?
客户端jQuery帖子:
$.ajax({
url: "MyController/MyAction",
dataType: "json",
type: "POST",
cache: false,
data: {
Level1: {
Level2: {
StringValue: "Test"
}
}
}
});
服务器端模型:
public class MyForm
{
public LevelOne Level1 { get; set; }
}
public class LevelOne
{
public LevelTwo Level2 { get; set; }
}
public class LevelTwo
{
public string StringValue { get; set; }
}
答案 0 :(得分:1)
为什么json的3级嵌套模型绑定工作
您没有向服务器发送任何JSON。如果您想在此处发送JSON请求,请执行以下操作:
$.ajax({
url: "MyController/MyAction",
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: "POST",
cache: false,
data: JSON.stringify({
Level1: {
Level2: {
StringValue: "Test"
}
}
})
});
JSON.stringify
方法是将javascript文字序列化为JSON字符串的方法。它原生于现代浏览器中。如果您需要支持旧版浏览器,则可以在页面中加入json2.js脚本。