按类型显示过滤的属性

时间:2015-04-15 15:28:54

标签: .net model-view-controller filtering

所以我有一个显示商店信息的页面。我知道哪些商店具有活动和非活动状态。我想知道是否有办法让它默认显示活动商店第一个和非活动状态,或者仅显示活动状态。

这是我认为需要完成这项工作的代码部分。这是我尝试使用的IsActive系列。我完全不确定如何做到这一点。

    <table id="SAPIPartnerList" class="display">
        <thead>
            <tr>
                <td>Partner Name</td>
                <td>Partner ID</td>
                <td>Is Active</td>
                <td>Account Manager</td>
            </tr>
        </thead>
        <tbody>
          @foreach (var i in Model.SAPIPartners)
            {
                <tr>
                    <td>@Html.ActionLink(i.Description, "SAPI", "Partner", new { siteNo = i.SiteNo }, null)</td>
                    <td>@Html.DisplayFor(modelItem => i.PartnerID)</td>
                    <td>@(i.IsActive ? "Active" : "Inactive")</td>
                    <td>@Html.DisplayFor(modelItem => i.PartnerAccountManager)</td>

                </tr>
            }
        </tbody>
    </table>
}
else if (!String.IsNullOrEmpty(ViewBag.Query))
{ 
    <div class="no-results-row">No Results found</div>
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果SAPIPartners以某种方式实现IEnumerable,您可以使用LINQ按bool值排序:

@foreach (var i in Model.SAPIPartners.OrderByDescending(p => p.IsActive))

false小于true,这就是我们订购降序的原因。

之后,如果有帮助,您可以通过其他方式订购:

Model.SAPIPartners.OrderByDescending(p => p.IsActive).ThenBy(p => p.Description)