在我的热门问题中Asp MVC 3 json complex object not initialize properties
我的错误在于来自Knockout的JSON转换以及JSON.stringify(data).
之后的一次转换
现在用一个参数正常工作,
但我想知道我是否需要向MVC控制器发送两个或更多参数,其中一个是knowckout data = ko.toJSON(viewModel);
变量,其他一个是一些文本。
var settings = ko.toJSON(viewModel);
var parameters = JSON.stringify({ id : *"guid"*, data : settings });
$.ajax({
url: '/KioskAjax/SaveSettings/',
type: "POST",
data: parameters,
dataType: "JSON",
contentType: "application/json; charset=UTF-8",
success: function (result) {
alert('ok');
}
});
[HttpPost]
public JsonResult SaveKiosksSettings(Guid id, GlobalData data)
{
return Json(false.ToString(), JsonRequestBehavior.AllowGet);
}
在此示例中, id 获取值,但GlobalData参数再次为null, 我认为这是因为我再次使用JSON.stringify,但如果我知道对象,如何为控制器调用构建正确的JSON?
感谢。
答案 0 :(得分:3)
ko.toJSON(myObject)
执行ko.toJS(myObject)
,然后执行JSON.stringify(myObject)
。
因此,您可以选择使用ko.toJS(myObject)
获取数据的干净副本,然后使用其他数据JSON.stringify
,就像您现在所做的那样。