0

我有一個MVC5/Bootstrap應用程序,該頁面中的用戶作爲較大的表單的一部分可以添加和刪除表中的行。使用表格行作爲MVC模型綁定的表單元素

要添加行,用戶單擊一個圖標,然後使用彈出窗口中顯示的TypeAhead字段搜索數據,該字段在選中時使用AJAX檢索行數據並將該行插入表中。

通過單擊每行中的圖標可以刪除行,然後刪除該行。這兩個操作都會影響包含行的ID列表的綁定隱藏輸入字段,例如「{100001},{100003},{} 100004」。

當包含此表格的表單被提交時,此隱藏字段將被解析,並使用EF6執行相應的數據庫操作以添加或刪除項目。

我的問題是,這種使用控制器方法手動解析的隱藏字段是否是最佳選擇。我在想,可能會有更習慣於使用MVC模型綁定的方式。例如在每行或某些這樣的機制上隱藏複選框。

回答

0

您綁定的ViewModel可能包含一行行視圖模型的集合,這些行視圖模型將所有輸入封裝爲單個行。

要提交這些,使用索引綁定它們。

<table> 
    <tbody> 
    <tr> 
     <td> 
       @Html.HiddenFor(m => m.RowData[0].SomeRowProperty) 
       <input type="hidden" name="RowData.Index" value="0" /> 
     </td>  
    </tr> 
    <tr> 
     <td> 
       @Html.HiddenFor(m => m.RowData[1].SomeRowProperty) 
       <input type="hidden" name="RowData.Index" value="1" />  
     </td>  
    </tr> 
    </tbody> 
</table> 

又見Model binding to a list