gpt4 book ai didi

c# - 在 for 循环 Razor View 中分组

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:48 25 4
gpt4 key购买 nike

我的 Razor View 中有以下内容

                @foreach (var group in Model.QuestionList.GroupBy(x => x.AreaName))
{
<h4>@group.Key</h4>

for (int i = 0; i < Model.QuestionList.Count(x => x.AreaName == group.Key); i++)
{

<div class="form-group">
<div class="row">
<div class="col-md-4">
@Html.DisplayFor(x => Model.QuestionList[i].Question)
</div>
<div class="col-md-2">
@Html.HiddenFor(x => Model.QuestionList[i].StnAssureQuestionId)
@Html.DropDownListFor(model => model.QuestionList[i].Score, new SelectList(Model.QuestionList[i].Scores, "ScoreId", "ScoreNum", 0), "Please Select", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.QuestionList[i].Score, "", new { @class = "text-danger" })
</div>
<div class="col-md-4">
@Html.EditorFor(x => Model.QuestionList[i].Comments, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.QuestionList[i].Comments, "", new { @class = "text-danger" })
</div>
</div>
</div>
}
}

我希望能够显示 QuestionList 中的所有对象,但按 AreaName(组键)对它们进行分组。

当前代码显示第一组的标题,然后显示该组中的问题,但之后它所做的只是显示下一组名称,后跟相同的问题,然后再次显示所有组。

我敢肯定这很简单,但我仍然不够熟练,无法发现它。

最佳答案

您可能可以通过这样的方式解决问题,但我也会采纳其他人关于为此 View 创建特定 View 模型的建议。

@foreach (var group in Model.QuestionList.GroupBy(x => x.AreaName))
{
var questionList = group.ToList();
<h4>@group.Key</h4>
for (int i = 0; i < questionList.Count(); i++)
{
<div class="form-group">
<div class="row">
<div class="col-md-4">
@Html.DisplayFor(x => questionList[i].Question)
</div>
<div class="col-md-2">
@Html.HiddenFor(x => questionList[i].StnAssureQuestionId)
@Html.DropDownListFor(model => questionList[i].Score, new SelectList(questionList[i].Scores, "ScoreId", "ScoreNum", questionList[i].Score), "Please Select", new { @class = "form-control" })
@Html.ValidationMessageFor(model => questionList[i].Score, "", new { @class = "text-danger" })
</div>
<div class="col-md-4">
@Html.EditorFor(x => questionList[i].Comments, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => questionList[i].Comments, "", new { @class = "text-danger" })
</div>
</div>
</div>
}
}

Dot Net Fiddle Example

关于c# - 在 for 循环 Razor View 中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com