我正在尝试将更改回发到群组及其用户的嵌套列表复选框,但是当它发布时,我会继续获取我的列表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,以防我接近正确。