Ich verwende ein einfaches Beispiel, um das Knockout Viewmodel an den Controller zu posten. aber es passiert nicht. Die Hundemethode am Controller wird null.knockout.js viewmodel nicht verbindlich in asp.net mvc controller für post
Was mache ich falsch?
My Model
public class Dog
{
public string name { get; set; }
public int age { get; set; }
}
mein Controller, in dem das Dog-Objekt wird immer null
[HttpPost]
public ActionResult Save(Dog dog)
{
return Json(new { Status = string.Format("Success, saved {0} with age: {1}", dog.name, dog.age) });
}
Ansicht
<form method="POST" data-bind="submit: save">
<div>Name:</div>
<div><input type="text" data-bind="value: name" /></div>
<div>Age:</div>
<div><input type="text" data-bind="value: age" /></div>
<div><input type="submit" value="Save" /></div>
</form>
var ViewModel = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
//self.isValid = ko.computed(function() {
// return self.name().length > 0;
//});
self.save = function() {
$.ajax({
url: "Home/Save",
type: "post",
contentType: "application/json",
data: ko.mapping.toJSON(self),
success: function (response) {
alert(response.Status);
}
});
};
};
Sind Sie versuchen, die Daten aus dem Formular oder über die Ajax-Post zu schreiben? Weil es keine Bindung an die Speicherfunktion gibt. – muhihsan
durch Ajax post – maztt
Ich denke, dass ich das Objekt – maztt