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

时间:2010-05-16 20:18:25

标签: c# jquery asp.net-mvc formcollection

我有一个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构建一个对象,但是我遇到了以下形式存在密钥的问题:

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

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

1 个答案:

答案 0 :(得分:1)

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