KnockoutJS模型属性未发送到服务器

时间:2015-02-03 15:11:30

标签: knockout.js

我有一个使用KnockoutJS和jQuery的ASP.NET MVC应用程序。

我的KnockoutJS模型如下所示:

    var jsonPass = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model.ExitPass, Newtonsoft.Json.Formatting.Indented, jsonSettings));

        var ExitPass = function(exitPass) {
            var self = this;
            self.incidentId = ko.observable(exitPass.IncidentId || 0);
            self.employeeId = ko.observable(exitPass.EmployeeId || 0);
            self.employerId = ko.observable(exitPass.EmployerId || 0);
            self.employerDesc = ko.observable(exitPass.EmployerDesc);
            self.employeeNumber = ko.observable(exitPass.EmployeeNumber);
            self.employeeName = ko.observable(exitPass.EmployeeName);
            self.createdByName = ko.observable(exitPass.CreatedByName);
            self.incidentDate = ko.observable(exitPass.IncidentDate);
            self.incidentCode = ko.observable(exitPass.IncidentCode);
            self.incidentCodeDesc = ko.observable(exitPass.IncidentCodeDesc);
            self.incidentTypeId = ko.observable(exitPass.IncidentTypeId || 0);
            self.incidentType = ko.observable(exitPass.IncidentType);
            self.permitType = ko.observable(exitPass.PermitType);
            self.outHour = ko.observable(exitPass.OutHour);
            self.inHour = ko.observable(exitPass.InHour);
            self.place = ko.observable(exitPass.Place);
            self.subject = ko.observable(exitPass.Subject);
            self.securityStaffId = ko.observable(exitPass.SecurityStaffId || 0);
            self.authorizer = ko.observable(exitPass.Authorizer || 0);
            self.notes = ko.observable(exitPass.Notes);
        };
var App = function (exitPassData) {

                var self = this;

                self.exitPass = new ExitPass(exitPassData);

            };

            var appViewModel = new App(jsonPass);

            ko.applyBindings(appViewModel);

当我使用像这样的ajax保存到服务器时:

// save method
 $.ajax({

     url: '@Url.Content("~/Incident/UpdateExitPass")/',
     type: 'POST',
     contentType: 'application/json',
     dataType: 'json',
     data: ko.toJSON(appViewModel.exitPass),
     success: function(response) {

     },
     error: function(xhr, ajaxOptions, thrownError) {

     }
 });

我遇到的问题是某些属性未发送到服务器,例如“authorizer”未发送到服务器。我已经检查过使用开发人员工具(Chrome)和请求有效负载是:

enter image description here

  

“授权人”是保留字吗?任何线索?

我认为我发现了这个问题,并且与HTML绑定元素有关:

  <div class="form-group">
                        <label>Authorizer</label>
                        <select id="cboAuthorizer" class="form-control" data-bind="value: exitPass.authorizer">
                        </select>
                    </div>

我喜欢这个,如果我删除data-bind元素,那么我可以在Payload中看到该属性。

  

有任何线索吗?

0 个答案:

没有答案