0

ビューでマークされた (チェックされた) エントリを削除しようとしていますが、コレクションをコントローラに戻す方法がわかりません
。モードは次のとおりです:
Groupwhich hasICollection<SubGroup> SubGroupsと SubGroup hasICollection<Event> Events
私はビューに渡しGroup、反復してイベントの詳細を表示しますチェックボックスをオンにすると、イベントエントリが削除されます。
コントローラーへのポストバックを取得すると、Group.SubGroupsnull

  • 子エンティティがコントローラーに戻されるようにするにはどうすればよいですか?
  • @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>
}  

ありがとうございました

4

2 に答える 2