在C#中,我将API调用中的对象传递给UI,然后想要自动将该对象的属性映射到视图模型。我希望能够使用Knockout的映射插件来完成此操作。.Net类的挖空映射
public class MyModel
{
public int ID { get; set; }
[Display(Name ="Debt Name")]
[Required(ErrorMessage = "A description is required")]
public string Description { get; set; }
}
这是我从API调用(WebAPI)传递到UI的模型的简化版本。
在Javascript中,我已经定义了我想填充类:
class Model {
id: KnockoutObservable<number>;
description: KnockoutObservable<string>;
}
这是我的ViewModel之外。
在我的视图模型中,我创建了模型对象,并在我的构造函数中尝试使用映射填充类。你可以看到我注释掉的手动版本有效,但我试图离开它:
class DebtViewModel {
model: Model = new Model();
constructor() {
//this.model.id = ko.observable(0);
//this.model.description = ko.observable("");
$.get("/api/debt/1")
.done((data) => {
this.model = ko.mapping.fromJSON(data);
//this.model.id(data.ID);
//this.model.description(data.Description);
});
但是,映射似乎并不奏效。我没有得到一个错误,但模型似乎是一个空的函数。
可以这样做吗?我究竟做错了什么?
“数据”是什么样的?也许映射插件解析它有困难。 –