2010-05-16 25 views
2

我有一個JavaScript對象,obj一個的FormCollection,得到數據傳遞給通過$。員額(MVC的行動打造C#對象),就像這樣:如何從複雜的按鍵

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

如果你能這樣你在,而不是數據的JSON版本發送更改JavaScript的一面,我想你既可以接受一個字符串,並在控制器做反序列化JSON或自己做的模型做粘結劑它適合你。

+0

感謝。正如你所建議的那樣,我最終發送了一個json字符串到action中,並使用json.net編寫了一個自定義模型綁定器來反序列化請求。 – 2010-05-28 07:19:51