JSON-сериализация сложного объекта MVC3 - PullRequest
5 голосов
/ 29 июня 2011

У меня проблема, я не знаю, как сериализовать объект типа:

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);
        }
    });
});

Но все, что я получаю от действия контроллера, это объект Month с неделями = null.

Есть идеи?

1 Ответ

3 голосов
/ 29 июня 2011

Причина в том, что ваш Month.Weeks является массивом, поэтому для его добавления нельзя просто сделать это, как указано выше Month.Weeks = Weeks;, а Month.Weeks.push(Weeks);.* Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...