2012-10-05 48 views
0

我知道一種方法來發佈列表的形式Asp.net MVC文章列表,該鏈接一提的是http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx列表實體形式

我有一種情況,我需要帖子列表>通過使用上述鏈接中提到的代碼,我得到了帖子中的值。

生成的HTML代碼如下:


&ltinput class="input-micro valid" min="1" name="posItems[0][0].Quantity" required="required" value="30" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[1][0].Quantity" required="required" value="20" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[2][0].Quantity" required="required" value="20" type="text"> 

&ltinput class="input-micro valid" min="1" name="posItems[0][1].Quantity" required="required" value="20" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[1][1].Quantity" required="required" value="50" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[2][1].Quantity" required="required" value="20" type="text"> 

我的職務行爲就像

公衆的ActionResult保存(名單posItems)

這種運作良好,當兩個列表有相同數量的項目或者你可以說兩個列表具有相同的計數。

當第二個列表中的計數超過第一個列表時,我沒有從第二個列表中獲得附加值。

請參閱下面的示例,其中第二個列表比第一個列表多1項。


&ltinput class="input-micro valid" min="1" name="posItems[0][0].Quantity" required="required" value="30" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[1][0].Quantity" required="required" value="20" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[2][0].Quantity" required="required" value="20" type="text"> 

&ltinput class="input-micro valid" min="1" name="posItems[0][1].Quantity" required="required" value="20" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[1][1].Quantity" required="required" value="50" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[2][1].Quantity" required="required" value="20" type="text"> 
&ltinput class="input-micro valid" min="1" name="posItems[3][1].Quantity" required="required" value="114" type="text"> 
+2

你有問題嗎? –

+0

是的,有沒有辦法讓我得到發佈後的所有項目? –

回答

0

你在談論一個二維數組。爲了在二維數組中擁有物品1,您必須擁有一個物品0.由於您沒有[3] [0],因此不能有3 [1]。這就是陣列的工作原理,你不能改變它。

你唯一的選擇一)不使用多維數組或b)創建[3] [0]

+0

如果我不使用多維數組,我將如何獲取帖子中的對象列表? 我認爲這可能是一個解決方法 –

+0

@DeveshTipe - 你可以創建一個自定義模型綁定器,但目前還不清楚你如何計劃在目標數組中沒有[3] [0],因爲C#會不允許。 –

+0

這些項目添加在前端。用戶可以添加/刪除項目。所以列表不是靜態的。 我有一個自定義模型聯編程序,但不知道如何獲取這些值 –

0

CSHTML:

<ul> 
     <li><input type="text" name="Items[0].Name" /></li> 
     <ul> 
      <li><input type="text" name="Items[0].SubItems[0].Name" /></li> 
      <li><input type="text" name="Items[0].SubItems[1].Name" /></li> 
      <li><input type="text" name="Items[0].SubItems[2].Name" /></li> 
     </ul> 
    </ul> 
    <ul> 
     <li><input type="text" name="Items[1].Name" /></li> 
     <ul> 
      <li><input type="text" name="Items[1].SubItems[0].Name" /></li> 
      <li><input type="text" name="Items[1].SubItems[1].Name" /></li> 
      <li><input type="text" name="Items[1].SubItems[2].Name" /></li> 
     </ul> 
    </ul> 
+0

您至少可以解釋一下嗎? –

+0

這個答案需要一些探索 – Swinders