如何使用复杂的键从FormCollection构建C#对象

我有一个javascript对象, obj ,通过$ .post()传递给mvc动作,如下所示:

 var obj = { Items: [{ Text: "", Value: { Property1: "", Property2: "" }, { Text: "", Value: { Property1: "", Property2: "" }] }; $.post('MyAction', obj, function() {}); 

动作签名如下所示:

 public ActionResult MyAction(FormCollection collection) { } 

我需要能够从FormCollection构建一个对象,但是我遇到了一个问题,其中键的forms如下:

 "Items[0][Text]" "Items[0][Value][Property1]" "Items[0][Value][Property2]" "Items[1][Text]" "Items[1][Value][Property1]" "Items[1][Value][Property2]" 

我想知道是否有一种干净的方法来从给定的FormCollection构建所需的C#对象。 我明白我可以改变动作方法签名来接受我感兴趣的对象类型,但那是在呈现它自己的问题。

如果你可以改变javascript方面而不是发送数据的json版本,我认为你可以接受一个字符串并在控制器中自己做一个json反序列化,或者做一个模型绑定器来为你做。