从aspnetmvc序列化时,忽略敲除视图模型的属性

拉斯穆斯·克里斯滕森(Rasmus Christensen)

我有一个ASPNET mvc网站,该视图具有带剔除的viewmodel。我正在尝试将传递给视图的模型序列化为视图viewmodel。

该模型被传递给具有类似标准的ASPNET MVC的

@model Client.Controllers.TripDto

使用KO映射创建的剔除视图模型的完成方式如下

        var jsonModel = '@Html.Raw(JsonConvert.SerializeObject(this.Model))';
        var mvcModel = ko.mapping.fromJSON(jsonModel);
        var viewModel = new TripViewModel();
        var mapping = {
            'ignore': ["expenses"]
        };
        ko.mapping.fromJS(mvcModel, mapping, viewModel);

        ko.applyBindings(viewModel);

我在KO“自定义”视图模型上有财产支出。问题在于此属性不在MVC模型中,而只是一个稍后会获取其数据的属性。但是到目前为止,我还无法将模型无错误地传递到视图模型中

错误:无法解析绑定。消息:ReferenceError:费用未定义;绑定值:foreach:支出[中断此错误]

返回新的Function(“ $ context”,“ $ element”,functionBody);

我有点不确定映射是否真的失败了,但是到目前为止还看不到任何其他可能的错误。

所以问题是,是否可以在并非我要映射的模型中存在所有属性的情况下使用KO映射?

艾布拉姆·哈利勒(Ebram Khalil)

是否可以在并非所有属性都存在于我要映射的模型中的情况下使用KO映射?

我认为KO映射并不在乎这一点,但是模型在乎。当您调用ko.applyBindingsKO时,将搜索与HTML元素关联的属性,因此,如果要在HTML元素中使用该属性,data-bind='id: property'则该属性必须存在于您的View-Model中。但是,如果它为null,那就可以了。

只需您需要扩展视图模型,以便包括expenses具有默认值的新属性,例如null

var mapping = {
    create: function (options) {
        //customize at the root level.  
        var innerModel = ko.mapping.fromJS(options.data);

        innerModel.expenses= null;

        return innerModel;
    }
}

请检查这个SO问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在某些条件下进行序列化时忽略属性

来自分类Dev

使用Gson序列化时忽略主键

来自分类Dev

序列化时如何自动忽略所有属性而没有相应的构造函数参数

来自分类Dev

使用Jackson进行反序列化时有选择地忽略JSON属性

来自分类Dev

反序列化时的备用属性名称

来自分类Dev

反序列化时的备用属性名称

来自分类Dev

反序列化时忽略过时的字段

来自分类Dev

序列化时,Jackson xml会忽略空对象

来自分类Dev

在Java中进行序列化时如何忽略@JsonProperty

来自分类Dev

JSON反序列化时如何忽略某些字段?

来自分类Dev

忽略序列化/反序列化的[JsonIgnore]属性

来自分类Dev

将视图模型绑定到敲除中属性的存在

来自分类Dev

通过JSON.NET序列化时,属性顺序混乱

来自分类Dev

序列化时如何按声明顺序获取类属性

来自分类Dev

序列化时如何手动设置属性“名称”

来自分类Dev

[简单类型,反序列化时,属性重复”

来自分类Dev

序列化时如何按声明顺序获取类属性

来自分类Dev

从 XML 反序列化时未填充列表属性

来自分类Dev

反序列化时出错

来自分类Dev

使用Newtonsoft.Json反序列化时如何忽略类型

来自分类Dev

Newtonsoft Json.NET序列化时忽略默认日期时间值

来自分类Dev

XML序列化期间将忽略属性XmlNamespaceDeclarations

来自分类Dev

使用RestKit序列化JSON时忽略nil属性

来自分类Dev

如何忽略使用BinaryFormatter序列化的属性?

来自分类Dev

Jackson序列化:如何忽略超类属性

来自分类Dev

Jil序列化器忽略null属性

来自分类Dev

有条件地忽略属性序列化

来自分类Dev

如何忽略使用Akavache缓存的不可序列化属性?

来自分类Dev

如何通过ObjectMapper序列化类时忽略属性

Related 相关文章

热门标签

归档