首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于删除C#中0值计数的If语句

用于删除C#中0值计数的If语句
EN

Stack Overflow用户
提问于 2016-05-03 21:15:52
回答 6查看 369关注 0票数 0

我正在从仓库数据库中提取数据并显示在网页上。

这将拉取所有数据。

代码语言:javascript
复制
@foreach (WarehouseCategoryModel categoryModel in Model.Categories)
{
     <tr>
         <td>@Html.ActionLink(categoryModel.Name, "Category", "-WarehouseCatalog", new { ide = categoryModel.ID }, null)</td>
         <td>@categoryModel.Count</td>
     </tr>
 }

我需要显示计数大于0的每个类别。

我试过了:

代码语言:javascript
复制
if(@categoryModel.Count > 0)
{
  <td>@categoryModel.Count</td>
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-05-03 21:18:50

你把@放错地方了。它应该出现在if之前,如下所示

代码语言:javascript
复制
@if(categoryModel.Count > 0)
{
    <td>@categoryModel.Count</td>
}
else
{
    <td></td>
}
票数 1
EN

Stack Overflow用户

发布于 2016-05-03 21:26:38

您可以使用Where()子句显式地过滤掉正在迭代的项:

代码语言:javascript
复制
<!-- Only iterate through those with Counts greater than 0 -->
@foreach (WarehouseCategoryModel categoryModel in Model.Categories.Where(c => c.Count > 0))
{
     <!-- Do work here -->
}

如果您想要处理模型或类别可能为空的情况,可以添加以下显式检查:

代码语言:javascript
复制
<!-- Ensure you have categories to loop through (avoids null exceptions) -->
@if(Model?.Categories != null)
{
      <!-- Only iterate through those with Counts greater than 0 -->
      foreach (WarehouseCategoryModel categoryModel in Model.Categories.Where(c => c.Count > 0))
      {
           <!-- Do work here -->
      }
}
else 
{
    <tr>
        <td>No Categories Available</td>
    </tr>
}

如果您打算处理此问题,您可能希望在ViewModel本身中包含此逻辑,而不是在视图中,但总体思路是相同的。

票数 3
EN

Stack Overflow用户

发布于 2016-05-03 21:20:31

正如评论中提到的。这应该是可行的:

代码语言:javascript
复制
<td>
if(@categoryModel.Count > 0)
{
   @categoryModel.Count
}
</td>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37005227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档