简体   繁体   English

使用Ajax将数据从淘汰赛发布到Controller

[英]Post data from Knockout to Controller using Ajax

I'm getting null for the controller parameter. 我的控制器参数为空。 I am posting data as I can see it in Chrome Developer tools. 我正在发布数据,因为我在Chrome Developer工具中可以看到它。 I have a Person model in MVC that matches the Person model below. 我在MVC中有一个Person模型,该模型与下面的Person模型匹配。 This is my ViewModel : 这是我的ViewModel:

 function Person(data) {
    this.FirstName = ko.observable(data.FirstName);
    this.LastName = ko.observable(data.LastName);
    this.Id = ko.observable(data.Id);

    this.fullName = ko.computed(function () {
        return this.FirstName() + " " + this.LastName();
    }, this);

}

function PersonViewModel() {
    var self = this;
    self.people = ko.observableArray([]);



    $.getJSON("/api/person/getpeople", function (allData) {
        var mappedTasks = $.map(allData, function (item) { return new Person(item) });
        self.people(mappedTasks);
    });


    self.save = function(){

        $.ajax("/api/person/updateperson", {
            data: ko.toJSON({ people: self.people }),
            type: "post", contentType: "application/json",
            success: function (result) { alert(result) }
        });
    }
}
ko.applyBindings(new PersonViewModel);

API controller: API控制器:

  [HttpPost]
    public bool UpdatePerson(List<Person> person)
    {
        return mgr.UpdatePerson(person);
    }

You need to make sure that the service parameter's names match up with what you're passing. 您需要确保服务参数的名称与您传递的名称匹配。

self.save = function(){

        $.ajax("/api/person/updateperson", {
            data: ko.toJSON({ person: self.people }),
            type: "post", contentType: "application/json",
            success: function (result) { alert(result) }
        });
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM