我有两个相同的方法。HttpGet HttpPost方法偏差
我的[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
之间的值?
我能想到的唯一方法是在我的模型中添加2个属性startDate
和endDate
并使用剃须刀页面上的这些属性,但试图查看是否有可能在控制器中完成所有工作并保留剃须刀页面干净。
标准:
必须显示每一个KPI(即使没有数据(目前是这样的)) 必须过滤掉不daterange
之间的项目在[HttpPost]
方法。
如果您不需要其他KPI的,你可以添加一个WHERE(M => m.Date ...)到以VAR KPI开头的行= –
@NickBray很遗憾,我必须显示kpiHistory表中包含项目的KPI,以及kpiHistory表中还没有条目的KPI。 –