ビューでマークされた (チェックされた) エントリを削除しようとしていますが、コレクションをコントローラに戻す方法がわかりません
。モードは次のとおりです:
Group
which hasICollection<SubGroup> SubGroups
と SubGroup hasICollection<Event> Events
私はビューに渡しGroup
、反復してイベントの詳細を表示しますチェックボックスをオンにすると、イベントエントリが削除されます。
コントローラーへのポストバックを取得すると、Group.SubGroups
null
- 子エンティティがコントローラーに戻されるようにするにはどうすればよいですか?
@Html.CheckBox
の代わりに使用できます<input type="checkbox"...
か?
更新:モデル
public class Group
{
[Key]
public int GroupId { get; set; }
public virtual IList<SubGroup> SubGroups { get; set; }
....
}
public class SubGroup
{
[Key]
public int SubGroupId { get; set; }
public virtual IList<Event> Events { get; set; }
....
}
public class Events
{
[Key]
public int EventId { get; set; }
public string EventName { get; set; }
public bool IsDeleted { get; set; }
....
}
グループをモデルとしてビュー (下記参照)に渡し、ユーザーがチェックしたイベントを削除したい
意見:
@using System.Globalization
@model NS.Models.Group
@{
ViewBag.Title = "Edit";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Booking Details</legend>
<div class="display-label">
Group Name
</div>
<div class="display-field">
@Html.DisplayFor(model => model.GroupName)
</div>
<div class="display-field">
@foreach (var b in Model.SubGroup)
{
groupNo += 1;
<table class="main" style="width: 80%; margin-top: 10px">
<tr>
<th>
@Html.DisplayName("Sub Group ")
@Html.DisplayName(b.SubGroupName)
</th>
</tr>
<table class="main" style="width: 80%;">
<tr>
<th>Event</th>
<th>Delete</th>
</tr>
@foreach (var ev in b.Events)
{
<tr>
<td>
@Html.DisplayFor(modelItem => ev.EventName)
</td>
<td>
<input type="checkbox" id="eventToDelete" name="eventToDelete" value="@ev.EventId" />
</td>
</tr>
}
</table>
</table>
}
</div>
<p>
<input type="submit" name="xc" value="Delete" class="button" />
</p>
</fieldset>
}
ありがとうございました