Knockout JS + Отправка в MVC 3 - PullRequest
12 голосов
/ 28 мая 2011

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

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

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

Ответы [ 2 ]

15 голосов
/ 28 мая 2011

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

0 голосов
/ 28 мая 2011

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

...