【发布时间】:2017-08-20 01:42:22
【问题描述】:
我正在使用一个简单的示例将淘汰赛的视图模型发布到控制器。但它没有发生。控制器上的 dog 方法为空。
我做错了什么?
我的模特
public class Dog
{
public string name { get; set; }
public int age { get; set; }
}
我的控制器,其中 Dog 对象为空
[HttpPost]
public ActionResult Save(Dog dog)
{
return Json(new { Status = string.Format("Success, saved {0} with age: {1}", dog.name, dog.age) });
}
查看
<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);
}
});
};
};
【问题讨论】:
-
您是要从表单发布数据还是通过 ajax 发布?因为没有绑定到保存函数。
-
通过 ajax 发布
-
我认为我必须发送对象
-
那么如何修改它以发送对象?
标签: asp.net-mvc knockout.js knockout-3.0