ASP.. NET MVC 3 Json模型绑定3层对象



为什么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脚本。

最新更新