2012-11-02 52 views
1

我創建了一個具有動態行和列的矩陣類型表單。單元格包含需要由C#(MVC4,ASP.NET 4)處理的輸入字段。形式看起來像這樣(簡化):在C#中處理多維POST數據(ASP.NET 4.0)

<form action="~/Administration/PriceMatrix" method="post"> 
    <input type="text" name="Prices[1][0][1]" value="15.00" /> 
    <input type="text" name="Prices[1][0][2]" value="12.50" /> 
    <input type="text" name="Prices[1][1][1]" value="10.00" /> 
    <input type="text" name="Prices[1][1][2]" value="7.50" /> 
</form> 

匹配控制器仍然是空的:

[HttpPost] 
public ActionResult PriceMatrix(object form) 
{ 

} 

當我使用Request.Form我當然可以訪問所有的值,但他們沒有(DE )序列化成一個數組。所以我不能這樣做:Request.Form["Prices"][0]或類似的東西。相反,我只能使用他們的全名訪問它們:Request.Form["Prices[1][0][1]"](= 15.00)。當然,我可以通過數組循環,併爲每個值分割Key,但我想以其他方式執行此操作。我試圖用另一個類型或自定義對象替換object form包含列表等,但迄今沒有運氣。

有什麼建議嗎?

+0

你有沒有嘗試過像''double [,,] prices'「這樣的參數?只是想知道...不知道如果這是可行的 –

+0

爲什麼你沒有序列化成JSON形式? – AMember

回答

2

您需要獲取值作爲自定義類型。我建議您將表單序列化爲JSON,然後在服務器端以任何您喜歡的方式訪問序列化表單。