0

我正在开发 ASP.NET MVC 4.0 应用程序。

我在 Kendo Window 刷新选项中像这样将表单的值发送到控制器:-

var frm = $("#formUpdate");

var productWindow = $("#ProductWindow").data("kendoWindow");
productWindow .refresh({            
       url: "../../Product/UpdateProduct",
       data: { model: JSON.stringify(frm.serializeArray())}
});

下面是我在控制器上得到的字符串:-

[{"name":"DefaultAddressNumber","value":""},{"name":"Id2","value":"tax id 1"},   {"name":"Id2","value":"tax id 2"},{"name":"Id","value":"5"},{"name":"ProductTaxes","value":""},{"name":"ProdcutId","value":"20"},{"name":"InsuranceId","value":""},{"name":"OrgAddr1","value":""},{"name":"OrgAddr2","value":""},{"name":"OrgAddr3","value":""},{"name":"Name","value":"Amit Kumar"},{"name":"Description","value":"Description"},{"name":"SelectedProductSubTypeId","value":""},{"name":"IsEmailFinalizedProduct","value":"False"}]

我想再次将该字符串反序列化为数组或对象的形式,或者我可以轻松读取/获取它的东西。

为此,我使用了以下代码:-

var productString = Newtonsoft.Json.JsonConvert.DeserializeObject<ProductViewModel>(str);

但是我在使用这个时遇到了以下错误:

无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“ProductRepository.ViewModel.ProductViewModel”,因为该类型需要 JSON 对象(例如 {"name":"value"})才能正确反序列化。

要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化。JsonArrayAttribute 也可以添加到类型中以强制它从 JSON 数组反序列化。

路径'',第 1 行,位置 1。

任何人都可以帮我解决这个问题,这意味着我如何解析这个字符串?

4

1 回答 1

0

JSON.stringify在外面像..

var frm = $("#formUpdate");

var productWindow = $("#ProductWindow").data("kendoWindow");
productWindow .refresh({            
       url: "../../Product/UpdateProduct",
       data: JSON.stringify({ model: frm.serializeArray()})
});
于 2013-10-21T06:28:35.973 回答