复杂对象的JSON序列化MVC3

5

我有一个问题,我似乎不知道如何对类型为:

public class SchedulingCalendarMonth
{
    public List<SchedulingCalendarWeek> Weeks {get; set; }
}
public class SchedulingCalendarWeek
{
    public List<SchedulingCalendarDay> Days { get; set; }
}

public class SchedulingCalendarDay
{
    public int Id { get; set; }
    public bool SomeBoolProperty { get; set; }
}

我尝试过像这样的东西:

<script type="text/javascript">

$(document).ready(function () {

    var Month =
    {
        Weeks: []
    };
    var Weeks = { Days: [{ Id: 1, SomeBoolProperty: true }, { Id: 4, SomeBoolProperty: true }, { Id: 43, SomeBoolProperty: false}] };

    Month.Weeks = Weeks;

    $.ajax({
        url: '/Home/Test',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify({ month: Month }),
        contentType: 'application/json; charset=utf-8',
        success: function (result) {
            alert(result.Result);
        }
    });
});

但是在控制器操作中,我得到的只是一个具有空周数的月份对象。

有什么想法吗?

1个回答

3
原因是你的 Month.Weeks 是一个数组,所以为了给它加上 1,你不能像上面那样写 Month.Weeks = Weeks; 而应该写成 Month.Weeks.push(Weeks); 试一下吧。
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接