为什么json中的3级嵌套模型绑定不起作用?
测试2个级别,说在level2上添加字符串属性,工作,但3个级别不?这是一个设计,一个错误,还是我错过了什么?
客户端jQuery post:
$.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; }
}
为什么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脚本。