我正在努力为我现有的东西制作一个更有活力的解决方案。我有一个包含多个案例的数据库,每个案例包含2个作业。在我看来,我想根据每项任务显示每个案例:
Case | Assignment | SelecteBool
Case1 | Electricity | true
Case2 | Electricity | false
Case1 | Cement | true
Case2 | Cement | false
我创建了一个代码,可以使这个视图成为可能,但只有一个手动创建的String Array,我定义了每个赋值:
string[] assignments = new string[2];
assignments[0] = "Electricity";
assignments[1] = "Cement";
我的问题是,如果将来的案例应包含3个(或更多)作业,我必须手动进入并将其添加到列表中。是否可以创建一个动态解决方案来读取所选的案例分配并将它们放入字符串数组?
例如,如果Case1又添加了一个assing"其他"并且被选中(selectBool == true),然后它应该在包含以下内容的数组中读取:
assignments[0] = "Electricity";
assignments[1] = "Cement";
assignments[2] = "Others";
我正在研究MVC5,它包含很多Razor和Linq,我想避免尽可能多的javascript。
非常感谢所有帮助!提前谢谢。
修改
根据要求,这是我的观点。我目前没有在控制器中使用任何东西来创建带有手动创建的String Array的视图。
查看:
@{
string[] assignments = new string[2];
assignments[0] = "Electricity";
assignments[1] = "Cement";
}
<div>
@foreach (string i in assignments)
{
foreach (var chosen in Model)
{
if (chosen.SelectedBool == true && chosen.Assignment.Contains(i))
{
<div class="table" style=" display: table; margin: 10px 0 10px 0; ">
<div class="col-md-2">
<p><b>@Html.DisplayFor(modelItem => chosen.Name)</b></p>
</div>
<div class="col-md-1">
<p><b>@Html.DisplayFor(modelItem => chosen.Assignment)</b></p>
</div>
<div class="col-md-2">
<p>@Html.DisplayFor(modelItem => chosen.SelectedBool)</p>
</div>
</div>
}
}
}
</div>
答案 0 :(得分:0)
您的作业应填入控制器!最简单的方法是设置一些ViewBag属性,然后更改视图,以便循环遍历此ViewBag属性。 您的控制器将分别具有
ViewBag.Assignments = RetreiveAssignments();
您的作业将是动态的