私は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");
私は、従業員が含まれているのViewModelパターンを使用してオブジェクトを作成します子どものリスト。なぜ85%の時間がHtml.Checkbox行のViewに例外をスローするのかわかりません。時間の約15%、それは正常に動作します。例外は「タイプ 'System.String'からタイプ 'System.Boolean'へのパラメータ変換に失敗しました。 IEは次に表示します:
- FormatException:文字列が有効なブール値として認識されませんでした。
- FormatException:BobbyがBooleanの有効な値ではありません。
もちろん、「Bobby」はブール値ではないため、失敗します。 Html.Checkboxが "Bobby"をブール値として使用しようとしている理由についての手掛かりはありますか?同じViewModelが子を追加するために正常に動作するので、私はそこにエラーがあるとは思わない。
あなたのPOSTアクションからすべてのコードを投稿してください。 –
@ eu-ge-ne:ここにあります:http://pastebin.ca/1522362 – royco
更新:リスト内の最後の子をいつでも削除できるようです。ViewModelに渡すnewChildrenオブジェクトには、常に正しい子リストが更新されています。私はここに適切な戦略を持っていると思うが、どこかにバグがあるに違いない。 – royco