我正试图通过如下击倒对象,
当我使用// ko.utils.postJson传递数据时,没有任何AJAx,数据被传递给我的控制器到“任务”,但当我尝试通过Ajax发布时,我获得任务的空值
function TaskListViewModel() {
var self = this;
self.availableMeals = [
{ UserName: "Standard", UserId: 0 },
{ UserName: "Premium", UserId: 34 },
{ UserName: "Ultimate", UserId: 290 }
];
self.save = function () {
// ko.utils.postJson(location.href, { task: this.availableMeals });
$.ajax(location.href,{
data: ko.toJSON({ task: this.availableMeals });,
type: 'POST',
dataType:'json',
contentType: 'application/json',
success: function (result) { alert(result) }
});
};
}
ko.applyBindings(new TaskListViewModel());
如下控制器,
[HttpPost]
public ActionResult About([FromJson] IEnumerable<UserProfile> task)
{
return RedirectToAction("Login","Account");
}
答案 0 :(得分:0)
我会尝试更改您的代码,以便在Ajax调用中调用存储的自引用,如下所示:
$.ajax(location.href,{
data: ko.toJSON({ task: self.availableMeals });,
type: 'POST',
dataType:'json',
contentType: 'application/json',
success: function (result) { alert(result) }
});
};
我猜你有一个范围问题,this
在你的Ajax调用中失去了它的引用。