ノックアウトからmvc2コントローラーアクションにjsonを送信する際に問題が発生しました。これが私の見解です:
var ViewModel = {
FirstName: ko.observable("FirstName"),
LastName: ko.observable("LastName"),
Save: function () {
ko.utils.postJson(location.href, this);
}
}
ko.applyBindings(ViewModel);
コントローラにアクションがあります:
public virtual ActionResult SomeAction(MyModel model) {
//do smth
return View(registrationModel);
}
public class MyModel {
public string FirstName {get;set;}
public string LastName {get;set;}
}
問題は、「\ "FirstName \"」のように引用符で囲まれた文字列値を取得していることです。これを回避する方法があることを知っています(MVC3でJSON.stringifyを使用)。私は次のことを試しました:
ko.utils.postJson(location.href, JSON.stringify({model: this});
また
var json = JSON.stringify({
FirstName: this.FirstName(),
LastName: this.LastName()
});
ko.utils.postJson(location.href, JSON.stringify({model: json});
また
ko.utils.postJson(location.href, json);
これら3つのオプションすべてで、model = null、またはControllerのすべての値がnullになります。
多分誰かが以前にこれをしたことがありますか?