在我的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
循环中,我正在使用条件运算符,但是即使count为0(这是我的条件语句),也无法显示0
。如何显示它?
答案 0 :(得分:3)
为什么不仅仅返回结果?
@item.Count(x => x.tblFAM.CDate.Month == i)
答案 1 :(得分:2)
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
模板,因此我的View代码如下所示,因为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>
答案 2 :(得分:0)
如何返回string
,我的意思是
@(item.Count(x => x.tblFAM.CDate.Month == i).ToString())