如何使用复杂的键从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反序列化,或者做一个模型绑定器来为你做。
- http://code.google.com/p/jquery-json/
- ASP.Net MVC:向控制器发送JSON
- http://api.jquery.com/serializeArray/