在我的MVC视图中,我想使用条件运算符来显示变量的计数,即使它是0。
@foreach (var item in Model.TotalNumberProxy.LstFByTAndB)
{
<tr>
@using (var db = new ConnectionStringName())
{
<td>@db.code_VType.Find(item.Key).VType</td>
}
@for (var i = 1; i <= 12; i++)
{
<td>
@(item.Count(x => x.tblFAM.CDate.Month == i) == 0 ? 0 : item.Count(x => x.tblFAM.CDate.Month == i))
</td>
}
<td>@item.Count()</td>
</tr>
}
在我的for
循环中,我正在使用条件运算符,但即使计数为 0,我也无法显示0
,这是我的条件语句。 如何显示它?
为什么不直接返回结果?
@item.Count(x => x.tblFAM.CDate.Month == i)
IMO 将其中的大部分封装到控制器/模型中要容易得多:
public IActionResult MyControllerMethod()
{
using (var db = new ConnectionStringName())
{
foreach (var item in Model.TotalNumberProxy.LstFByTAndB)
{
LstFByTAndB.VType = @db.code_VType.Find(item.Key).VType;
}
}
for (var i = 1; i <= 12; i++)
{
item.Columns.Add(item.Count(x => x.tblFAM.CDate.Month == i));
}
return View(model);
}
然后视图代码将如下所示:
@foreach (var item in Model.TotalNumberProxy.LstFByTAndB)
{
<tr>
<td>@item.VType</td>
@for (var i = 1; i <= 12; i++)
{
<td>@item.Columns[i]</td>
}
<td>@item.Count()</td>
</tr>
}
但我可能会创建一个LstFByTAndB
模板,所以我的视图代码将如下所示,因为如果 DisplayFor 是 IEnumerable,它会自动循环。
@Html.DisplayFor(m => m.TotalNumberProxy.LstFByTAndB)
模板为:
<tr>
<td>@item.VType</td>
@for (var i = 1; i <= 12; i++)
{
<td>@item.Columns[i]</td>
}
<td>@item.Count()</td>
</tr>
返回string
怎么样,我的意思
@(item.Count(x => x.tblFAM.CDate.Month == i).ToString())