【问题标题】:Knockout JS + Sending to MVC 3淘汰 JS + 发送到 MVC 3
【发布时间】:2011-09-03 20:29:35
【问题描述】:

我有以下代码,但是一旦将其提交到服务器,我就会得到“未定义”的字符串,而不是 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();
    });

提前致谢

【问题讨论】:

    标签: asp.net-mvc knockout.js data-annotations


    【解决方案1】:

    而不是JSON.stringify(viewModel) 执行ko.toJSON(viewModel),这将在执行字符串化之前首先解开所有可观察对象。这里有一些有用的文档:http://knockoutjs.com/documentation/json-data.html

    【讨论】:

      【解决方案2】:

      我认为首先你应该改变: GradeSelected: ko.observable(Grades[0]) 也许您想将成绩更改为 observableArray。我会把它放在评论中,但还不能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-12
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 2015-06-02
        • 2012-07-12
        • 2014-04-16
        • 1970-01-01
        相关资源
        最近更新 更多