我有一个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#对象。我知道我可以改变动作方法签名以接受我感兴趣的对象类型,但这表明了它自己的问题。
答案 0 :(得分:1)
如果你可以更改javascript端,所以你发送的是数据的json版本,我认为你可以接受一个字符串并在控制器中自己做一个json反序列化,或者做一个模型绑定器来做它对你而言。