我正在努力與ASP.NET MVC中的Html.Checkbox。想象一下,一個僱員與兒童的重複組:如何使用Html.Checkbox刪除ASP.NET MVC中的重複組?
alt text http://img220.imageshack.us/img220/7208/deletechildrensnapshotk.png
「添加子」按鈕正常工作,但我不能可靠地使用「刪除選中的孩子」。我呈現的複選框與此:
<% int i = 0; %>
<% foreach (var item in Model.Children) { %>
<tr>
<td>
<%=Html.CheckBox("childrenToDelete[" + i + "]", false, new {value = item.Name})>
</td>
</tr>
<% i++; %>
<% } %>
下面是我的控制器行動得到孩子們的名單從的FormCollection刪除:
var childrenToDelete = new List<string>();
UpdateModel(childrenToDelete, "childrenToDelete");
我然後創建使用包含員工的視圖模型圖案的物體和一張兒童名單。我無法弄清楚爲什麼85%的時間我在Html.Checkbox行的View中拋出異常。大約15%的時間,它工作正常。例外是「從類型'System.String'到類型'System.Boolean'的參數轉換失敗。」 IE然後顯示:
- FormatException:String未被識別爲有效的布爾值。
- FormatException:Bobby不是Boolean的有效值。
當然「Bobby」不是布爾值,所以它失敗了。關於爲什麼Html.Checkbox試圖將「Bobby」用作布爾值的任何線索?相同的ViewModel適用於添加孩子,所以我不認爲我有一個錯誤。
發佈你的POST動作的所有代碼,請 – 2009-08-08 10:14:47
@ eu-ge-ne:它是:http://pastebin.ca/1522362 – royco 2009-08-08 22:35:32
更新:它看起來像我總是可以刪除列表中的最後一個孩子。我傳遞給ViewModel的newChildren對象始終擁有正確和更新的子級列表。我想我在這裏有正確的策略,但我必須在某個地方有一個bug。 – royco 2009-08-08 22:40:16