我在模型中有两个类,见下文:
public class Action
{
public int Id { get; set; }
public bool HasChecked { get; set; }
}
public class Function
{
public int Id { get; set; }
public IEnumerable<Action> Actions { get; set; }
}
public class Permission
{
public int Id { get; set; }
public IEnumerable<Function> Functions { get; set; }
}
我想知道在chstml中使用CheckBox的最佳选择是什么,因为我有viewModel的Permission模型。是否可以将键入的集合返回给控制器? (Permisson有很多函数,有很多动作)
谢谢!
答案 0 :(得分:1)
你绝对可以做到这一点。我相信模型需要是一个集合或列表或类似而不是IEnumerable(我可能会误解,但我只使用过列表)。
最简单的方法是在你的视图中,你迭代每个集合的东西,并为每个动作吐出一个复选框,如下所示:
@if (Model != null && Model.Functions != null)
{
for (int i = 0; i < Model.Functions.Count; i++)
{
var fcn = Model.Functions[i];
for (int j = 0; j < fcn.Actions.Count; j++)
{
@Html.CheckboxFor(model => Model.Functions[i].Actions[j].HasChecked);
@Html.DisplayFor(model => fcn.Actions[j]);
}
}
}
我已经做了一段时间,但我觉得这些方面的东西对你有用。如果你想自己用HTML做,你要注意的主要事情是输入的name
属性看起来像name=Functions[0].Actions[1].HasChecked
(对于第一个函数的第二个动作)模特)。