淘汰JS +发送到MVC 3

Rub*_*ord 12 asp.net-mvc data-annotations knockout.js

我有以下代码,但一旦提交到服务器,我得到的字符串是"未定义"而不是null或空.这导致问题,因为我无法执行验证.任何想法如何防止这种情况发生时使用淘汰赛.

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();
    });
Run Code Online (Sandbox Code Playgroud)

提前致谢

RP *_*yer 15

而不是JSON.stringify(viewModel)do ko.toJSON(viewModel),它将在执行stringify之前首先解开所有的observable.这里有一些有用的文档:http://knockoutjs.com/documentation/json-data.html