通过JSON将数据发送回我的MVC3控制器时遇到了一些麻烦。
我的最终目标是让我的控制器从视图中接收淘汰数据和当前模型。
我可以轻松找回可观察数组,并且可以轻松找回用于填充视图的原始模型。但我无法在浏览器中获得对模型的更新。
通常,提交会自动发回视图模型,我想我只需要调用该机制。
我的代码目前正确地获取了淘汰数组,但模型是“旧的”,它是用于从服务器填充视图的数据。
我真的在寻找如何在表单上启动机制,允许我通过JSON(或其他更好的方式)发回数据
编辑:数据线已更改。我现在得到了模型,但是项目数组的大小正确,但是空项目。看起来淘汰赛的映射并不是很有效。
Controller sig:
public ActionResult Save(
IEnumerable<ItemModel> eventlist,
ViewHeaderModel model)
var vm = @Html.Raw(Json.Encode(Model));
$.ajax({
async: false,
url: '/controller/schedule/save,
data: $('#myForm').serialize()+"&" +$.param({'eventlist': ko.toJS(self.DraftKoModel.ScheduleItems)}),
type: 'POST',
contentType: 'application/json; charset=utf-8',
traditional: true,
success: function (result) {
alert("HEEEEEEELP! I'm trapped!")
}
});
答案 0 :(得分:0)
刚测试为我的应用添加了一个快速测试页面。下面的代码应该有效:
$.ajax({
url: '/controller/schedule/save',
data: $("#myForm").serialize() + "&" + $.param({'eventlist' : ko.toJS(self.DraftKoModel.ScheduleItems}),
type: "POST",
dataType: "application/JSON",
success: function (result) {
alert("HEEEEEEELP! I'm trapped!")
}
});
Put this together using this blog post as a reference.
如果有帮助,请告诉我!