次のような単純な MVC モデルがあります。
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string MobileNumber { get; set; }
public string EmailAddress { get; set; }
}
このタイプの 1 つのオブジェクトをノックアウト ビューモデル内にマップして、データを入力したいと思います。
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 の要素を抽出しようとしています。私がうまくいくと思ったもう 1 つの解決策は、2 番目のコメント ブロックにあるものです。Googleで見つけたものはすべて、配列全体をマッピングすることにつながりましたが、単純なオブジェクトマッピングには何もなりませんでした。これを行う適切な方法はありますか?モデルを分離したままにしておき、JavaScript でそのプロパティを手動で記述したくありません。
ありがとう、アレックス・バラク