我有兩個相同的方法。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。 –