我在视图中有一个简单的@foreach循环遍历列表:
@foreach (var record in Model.ChangeOrder.Change_Order_Dash_List)
{
....
}
效果很好!但是,根据模型中的布尔值,我可能需要过滤此列表。这个,我很难搞清楚。这就是我正在尝试的:
@{List<MCA.Models.ChangesVM.ChangeOrderInfo> Change_Order_Dash_List = new List<MCA.Models.ChangesVM.ChangeOrderInfo>();}
@if (Model.ViewChangeOrdersFromChart)
{
Change_Order_Dash_List = Model.ChangeOrder.Change_Order_Dash_List.Where(l => l.Implement_Date == Model.ViewChangeOrdersOnDate).ToList<MCA.Models.ChangesVM.ChangeOrderInfo>();
}
else
{
Change_Order_Dash_List = Model.ChangeOrder.Change_Order_Dash_List;
}
@foreach (var record in Change_Order_Dash_List )
{
....
}
但结果很奇怪。当我呈现页面时,列表看起来是空的。没有数据呈现在屏幕上。如果我在页面的任何地方设置断点,它就永远不会被击中。
我做错了什么?
谢谢!
答案 0 :(得分:1)
实现此目的的另一种(和IMO更简单)语法是使用if
运算符将Where
条件合并到||
中,如下所示:
yourList.Where(l => !Model.ViewChangeOrdersFromChart ||
l.Implement_Date == Model.ViewChangeOrdersOnDate)
仅当Model.ViewChangeOrdersFromChart
为true
时才会过滤此列表。
这样你根本不需要if条件。
答案 1 :(得分:0)
嗯,无论出于什么奇怪的原因,这都行不通:
@if (Model.ViewChangeOrdersFromChart)
但这确实......
@if (Model.ViewChangeOrdersFromChart == true)