gpt4 book ai didi

c# - Razor Foreach 循环不返回所有数据

转载 作者:行者123 更新时间:2023-11-30 21:06:11 25 4
gpt4 key购买 nike

我有一个 foreach 循环,它根据模型中的项目数构建超链接。它工作正常,除了以下部分:ProgramId = @item.ProgramIds.First() 仅返回每个 ProgramType 的第一个程序 ID。让它遍历所有程序 ID 而不仅仅是第一个的语法是什么?

@model IEnumerable<CMESurvey.ViewModels.ProgramTypeViewModel>
@{
ViewBag.Title = "Home";
}
@foreach (var item in Model)
{
<h2>@Html.DisplayFor(modelItem => item.ProgramTypes)</h2>

<ul>
@foreach (var ProgramTitles in item.ProgramTitles)
{
<li>

@Html.ActionLink(@ProgramTitles, "Results", "SurveyResponse", new { ProgramId = @item.ProgramIds.First() }, null)
</li>
}
</ul>

   public class ProgramTypeViewModel
{
public int ProgramTypeIds { get; set; }

public IEnumerable<string> ProgramTitles { get; set; }

public IEnumerable<int> ProgramIds { get; set; }

public IEnumerable<string> ProgramTypes { get; set; }

}

Controller Action :

 public ViewResult Home()
{
var data = from SurveyProgramModel in surveyProgramRepository.Get()
group SurveyProgramModel by SurveyProgramModel.ProgramTypeId into programTypeGroup
select new ProgramTypeViewModel()
{

ProgramTypeIds = programTypeGroup.Key,
ProgramIds = programTypeGroup.Select(r => r.ProgramId),
ProgramTitles = programTypeGroup.Select(r => r.ProgramTitle),
ProgramTypes = programTypeGroup.Select(r => r.ProgramType.ProgramType).Distinct(),
};

return View(data);
}

最佳答案

item 指的是来自外循环的值。看起来您想使用内部循环中的值:

@foreach (var ProgramTitles in item.ProgramTitles)         
{
foreach(var programId in item.ProgramIds)
{

<li>
@Html.ActionLink(ProgramTitles, "Results", "SurveyResponse", new { ProgramId = programId }, null)
</li>
}
}

在您提供 viewModel 之后,您似乎将 ProgramTitles 和 ProgramIds 作为两个断开连接的数组。也许,您所拥有的是 ProgramTitle 的数组索引 n 处的项目在 ProgramIds 数组的第 n 项中有对应的条目。 viewModel 可以改进,但这是我的解决方案:

@for (var index = 0; index < item.ProgramTitles.Count; index++)         
{

<li>
@Html.ActionLink(ProgramTitles[index], "Results", "SurveyResponse", new { ProgramId = item.ProgramIds[index]}, null)
</li>
}

关于c# - Razor Foreach 循环不返回所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348352/

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