MVC Razor - 复选框的层次结构/嵌套IList,其中Count = 0

时间:2017-06-08 15:35:30

标签: asp.net-mvc razor nested parent-child hierarchy

我正在尝试将更改回发到群组及其用户的嵌套列表复选框,但是当它发布时,我会继续获取我的列表Count = 0。现在,团体中没有团体,但如果我们将来继续这样做,我仍然希望这个递归。

我有一个附加到我的活动模型的GroupsUsers的分层IList:

的活动:

public class Activity
{
    public int ActivityId { get; set; }
    public string Name { get; set; }
    public string Path { get; set; }
    public string Description { get; set; }
    public Nullable<int> ParentId { get; set; }
    public IList<GroupsUsers> Hierarchy { get; set; }
}

GroupsUsers:

public class GroupsUsers
{
    public Guid? Guid { get; set; }
    public string Name { get; set; }
    public bool IsAllowed { get; set; } = false;
    public IList<GroupsUsers> Children { get; set; } = new List<GroupsUsers>();
}

我尝试过编辑器,部分视图和帮助器,但是他们没有运气回到层次结构中。我的Model.Hierarchy以Count = 0回发。

这是我目前的尝试:

主视图(淡化):

@model MyProject.Models.Activity

@using (Html.BeginForm())
{
    <!-- Activity stuff -->

    <ul style="list-style:none;">
        @for (var i = 0; i < Model.Hierarchy.Count(); i++)
        {
            @Html.EditorFor(model => model.Hierarchy[i])
        }
    </ul>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Save" class="btn btn-default" />
        </div>
    </div>
}

当前尝试。 GroupsUsers.cshtml:

@model MyProject.Models.GroupsUsers

<li>
    @Html.HiddenFor(model => model.Guid)
    @Html.HiddenFor(model => model.Name)
    @Html.CheckBoxFor(model => model.IsAllowed, new { @class = "groupsusers-checkbox", @style = "margin-right:5px; cursor:pointer;", @value = Model.Guid.ToString() }) @Html.LabelFor(model => model.IsAllowed, Model.Name, new { @class = "build-checkbox-label", @style = "font-weight:normal; margin-top:-2px;" })

    @if (Model.Children.Any())
    {
    <ul style="list-style:none;">
        @for (var i = 0; i < Model.Children.Count(); i++)
        {
            @Html.EditorFor(model => model.Children[i])
        }
    </ul>
    }
</li>

我正在查找我的复选框列表,以递归方式显示列表层次结构并正确地发布Model.Hierarchy。

任何帮助都将受到赞赏......我只包括尝试#2和#3,以防我接近正确。

0 个答案:

没有答案