Подтвердить что ты не робот

Нокаут JS + Отправка на MVC 3

У меня есть следующий код, но после его отправки на сервер я получаю строки "undefined" вместо нулевого или пустого. Это вызывает проблемы, поскольку я не могу выполнить проверку. Любые идеи, как предотвратить это при использовании нокаута.

var viewModel = {
        userName: ko.observable(""),
        emailAddress: ko.observable(""),
        verifyEmailAddress: ko.observable(""),
        OptOut: ko.observable(true),
        Grades: ["Grade 1", "Grade 2", "Grade 3", "Grade 4", "Grade 5", "Grade 6"],
        gradeSelected: ko.observable(["Grade 1"])
    };
    ko.applyBindings(viewModel);

    $("#addUser").click(function (e) {
        $.ajax({
            url: 'AddUser',
            dataType: 'json',
            data: JSON.stringify(viewModel),
            type: 'POST',
            success: function (data) {
                $("#errorSection").text(data.Success).show();
            }   
        });
        e.preventDefault();
    });

Заранее спасибо

4b9b3361

Ответ 1

Вместо JSON.stringify(viewModel) do ko.toJSON(viewModel), который сначала распакует все наблюдаемые перед выполнением строкой. Некоторые полезные документы здесь: http://knockoutjs.com/documentation/json-data.html

Ответ 2

Я думаю, что в первую очередь вам следует изменить:   gradeSelected: ko.observable(Оценки [0]) И, возможно, вы захотите изменить оценки на наблюдаемый массив. Я бы разместил это в комментарии, но пока не могу.