JQuery AJAX’post’数据没有通过web api控制器

我正在将一个Person()对象设置为几个ko.observables并尝试将其传递给我的ajax调用。 另一方面,一个Web API控制器将其作为null。

这就是我对ko.observables的数据绑定方式:

      

我的.js假设要获取ko.observable值,但不是:

 var firstname = ko.observable(); var lastname = ko.observable(); var email = ko.observable(); var password = ko.observable(); function submitclicked() { insertNewUser(); ko.applyBindings(firstname); ko.applyBindings(lastname); ko.applyBindings(email); ko.applyBindings(password); }; function Person() { this.FirstName = firstname(); this.LastName = lastname(); this.Email = email(); this.Password = password(); } function insertNewUser() { var person = new Person(); $.ajax({ url: "/api/Reg", type: 'post', data: JSON.stringify(person), contentType: "application/json; charset=utf-8", success: function (result) { person(result); } }) 

我的控制器在某种程度上没有正确地拉动那个“人”对象。 它获取对象,但所有值都为null(即使文本输入有文本)First_Name = null,Last_Name = null,Email = null,Password = null

 public void addUser(Person item) { var db = new MyEntities(); try { User record = new User() { First_Name = item.FirstName, Last_Name = item.LastName, Email = item.Email, Password = item.Password }; db.User.Add(record); db.SaveChanges(); 

有人注意到我搞砸了吗?

编辑:稍微清理了一下这个例子。

  public ..... Post([FromBody]objClass obj) var thing=obj.property; 

你也无法发布一个对象(它需要是真实数据),请参阅Json stringify尝试此线程如何JSON.stringify和JSON.parse而不获取空对象?

使用ko.toJSON它会将observable正确序列化为普通的JSON数据

你的模型定义也很奇怪。 要在构造函数之外定义observable,这意味着您不能拥有Person对象的多个实例