我有两种相同的方法。
我的 [HttpGet] 方法返回我的 KPI 模型的所有数据的列表。
我的 [HttpPost] 版本需要为我的 KPI 模型返回一个日期范围内的数据列表。
[HttpGet]
public ActionResult ViewDepartment (int id = 0)
{
// populate the IPACS_kpiHistory with all available data in the department
var kpi = model.IPACS_Department.IPACS_Functions.SelectMany(m => m.IPACS_Processes).SelectMany(m => m.IPACS_Procedures).SelectMany(m => m.IPACS_KPIS);
foreach (var item in kpi)
{
model.IPACS_KPIS.Add(item);
}
return View(model);
}
[HttpPost]
public ActionResult ViewDepartment (int id, System.DateTime startDate, system.DateTime endDate)
{
// populate the IPACS_kpiHistory with all available data in the department
var kpi = model.IPACS_Department.IPACS_Functions.SelectMany(m => m.IPACS_Processes).SelectMany(m => m.IPACS_Procedures).SelectMany(m => m.IPACS_KPIS);
foreach (var item in kpi)
{
model.IPACS_KPIS.Add(item);
}
return View(model);
}
在视图页面上,我需要显示每个 KPI 的列表(在 IPACS_KPIS 中找到),然后对每个 KPI 的数据(在 IPACS_kpiHistory 中找到)求和。
这是我的查看页面部分:
@foreach (var item in @Model.IPACS_KPIS)
{
<tr class="gradeX">
<td>
@item.name
</td>
<td>
@item.IPACS_kpiHistory.Select(m => m.startAmount).Sum()
</td>
<td>
@item.IPACS_kpiHistory.Select(m => m.completedAmount).Sum()
</td>
<td>
@item.IPACS_kpiHistory.Select(m => m.endAmount).Sum()
</td>
</tr>
}
如何正确过滤掉 [HttpPost] 的数据并找到startDate
和之间的值endDate
?
我能想到的唯一方法是向我的模型 astartDate
和 an添加 2 个属性,endDate
并在剃须刀页面上使用这些属性,但尝试查看是否可以在控制器中完成所有工作并保持剃须刀页面清洁。
标准:
必须显示每一个 KPI(即使它没有数据(目前是这样工作的))必须过滤掉不在方法daterange
中的项目[HttpPost]
。