ASP MVC 3复杂的多参数知识

时间:2011-12-01 12:48:30

标签: json asp.net-mvc-3 knockout.js

在我的热门问题中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?

感谢。

1 个答案:

答案 0 :(得分:3)

ko.toJSON(myObject)执行ko.toJS(myObject),然后执行JSON.stringify(myObject)

因此,您可以选择使用ko.toJS(myObject)获取数据的干净副本,然后使用其他数据JSON.stringify,就像您现在所做的那样。