В C# я передаю объект из моего вызова API в пользовательский интерфейс и хочу автоматически сопоставить свойства этого объекта с моделью просмотра. Я надеюсь сделать это с помощью картографического плагина для 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).
В 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);
});
Однако отображение не похоже на работу. Я не получаю ошибку, но модель просто кажется пустой функцией.
Можно ли это сделать? Что я делаю не так?
Как выглядят «данные»? Возможно, в плагине отображения возникают проблемы с его синтаксическим анализом. –