【发布时间】:2016-04-22 02:32:34
【问题描述】:
事实证明,这比我想象的要难。我有一个专门用于在我的网格中过滤的 ViewModel。这里是:
var GridFiltersViewModel = function () {
var self = this;
self.search = ko.observable();
self.sortColumn = ko.observable();
self.sortDirectionIsAscending = ko.observable(true);
self.page = ko.observable(1);
self.pageSize = ko.observable(10);
self.pageCount = ko.observable();
self.itemCount = ko.observable();
};
我面临的问题是,当我向我的操作方法发送此 ViewModel 的实例时出现错误:
值'null'对于属性
无效
发生这种情况是因为我的服务器端 ViewModel 属性不接受客户端 ViewModel 的 null 和 undefined 属性,即使我将它们设置为可为空。让服务器端 ViewModel 接受空属性的唯一方法是根本不发送它们。这是我的尝试:
var GridFiltersViewModel = function () {
// the properties from before
self.removeEmptyProperties = function () {
for (var property in self) {
if (self[property] === null || self[property] === undefined) {
delete self[property];
}
}
};
};
可以这么说,它不起作用。目前,当方法完成时,我只是得到一个 undefined 对象。在运行该方法之前,我还尝试将淘汰 ViewModel 转换为 JavaScript 对象(使用 ko.toJS()),但我得到了相同的结果。
我在这里做错了什么,我该如何做对?
【问题讨论】:
标签: javascript c# knockout.js