将名称值对数组作为字典传递给控制器

我在Javascript中有一个名称值对数组(就像form.SerializeArray()),我想传递给我的控制器并将其作为字典对象列表接收。

可能吗 ? 如果是这样,我如何传递对象?

谢谢

编辑

这是我要传递的JS对象

var ct = $('#frmrpt').serializeArray(); url="MyController/Print"; var vhtml = ""; $('#repo').html(vhtml); 

以下是我想如何在控制器上接收它

 public ActionResult Print( List<Dictionary> prms) 

我使用类似下面的内容来反序列化json字符串

 public static T DeserializeJSON(string jsonData) { if (!string.IsNullOrEmpty(jsonData)) { //jsonData = jsonData.Replace('"', ' '); var serializer = new JavaScriptSerializer(); return serializer.Deserialize(jsonData); } return default(T); } 

您可以使用json.net反序列化您的集合。

控制器:

 [HttpPost] [Authorize] [JsonFilter(Param = "data", JsonDataType = typeof(Dictionary))] public ActionResult Add(Dictionary data) { } 

客户:

 $.ajax({ type: 'POST', url: url, async: true, data: JSON.stringify(data), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { }, error: function (xhr, ajaxOptions, thrownError) { } });