我有一个像这样的简单 MVC 模型:
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string MobileNumber { get; set; }
public string EmailAddress { get; set; }
}
我想在淘汰视图模型中映射一个这种类型的对象以填充它:
var UserViewModel = function () {
var self = this;
self.user = ko.mapping.fromJS({});
$.getJSON("/UserManagement/CreateEmptyUser", function (data) {
ko.mapping.fromJS(data, self.user);
});
self.createUser = function (data, eventArgs) {
var user = data;
$.ajax({
type: "post",
contentType: "application/json",
data: ko.toJSON(user),
url: "@Url.Action("CreateUser")",
success: function () {
window.location = "@Url.Action("AddNew")";
}
});
};
};
我遇到的问题是我不知道如何映射任何单个对象。我试过使用
self.user = ko.mapping.fromJS([]);
$.getJSON("/UserManagement/CreateEmptyUser", function (data) {
ko.mapping.fromJS(data,{}, self.user);
});
它被用于数组并试图提取索引 0 处的元素,我认为另一个可行的解决方案是第二个注释块中的那个。我在谷歌上找到的所有东西都让我映射了整个数组,但对简单的对象映射却没有。有没有合适的方法来做到这一点?我想保持模型分离,而不是在javascript中手动描述它的属性。
谢谢,亚历克斯巴拉克