条件运算符未显示 if .计数 == 0



在我的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())

最新更新