在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);
});
但是,映射似乎並不奏效。我沒有得到一個錯誤,但模型似乎是一個空的函數。
可以這樣做嗎?我究竟做錯了什麼?
「數據」是什麼樣的?也許映射插件解析它有困難。 –