asp.net-mvc - 在 MVC4.0 中使用分页实现类别/子类别的更好选择是什么?

标签 asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有一个要求,我必须实现 Paging 和 Current Page 记录。
记录按类别和子类别分类,如下所述。

如果
你注意截图,我必须务实地显示当前页面的类别和子类别。现在,这是一个静态页面。

我们是否有任何内置功能/Nuget 有助于在 MVC4 中快速完成这件事。

enter image description here

最佳答案

老实说,这并没有你想象的那么糟糕。我通常构建一个看起来像这样的输入模型。

 public class SearchModel {
      public string Query {get;set;}
      public string Sort {get;set;}
      public string Category {get;set;}
      public string SubCategory {get;set;}
      public int Page {get;set;}
      public int Size {get;set;}
      /* Has Properties */
      public bool HasCategory { get { return !string.IsNullOrWhitespace(Category); } }
      // etc...
 }

然后我使用 NuGet 中名为 PagedList 的库,但您可以使用您拥有的任何 ORM 或非 ORM 编写自己的查询。然后我写了一个很好的小扩展方法来检查一个类别或子类别是否存在。
 /* I'm using EF ish code, but plug in your stuff here */
 public ActionResult Index(SearchModel search) {
    var results = Db.Certifications
                    .If(search.HasCategory, q => q.Where(x => x.Category == search.Category)
                    .If(search.HasSubCategory, q => q.Where(x => x.SubCategory == search.SubCategory)
                    .If(search.HasSort, q => q.OrderBy(/* whatever */)
                    .ToPagedList(page: search.Page, size: search.Size);

      return View(result);
 }

super 简单的解决方案,并没有真正妨碍您。

这是一个非常容易解决的问题,所以不要依赖任何可能在以后限制你或让你沮丧的太重的东西。

关于asp.net-mvc - 在 MVC4.0 中使用分页实现类别/子类别的更好选择是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866101/

相关文章:

c# - 如何更改架构名称

jquery - 我无法在覆盖单击时关闭 jQuery UI 对话框模式

javascript - 如何从asp.net mvc中的 Controller 传递json格式的chart.js图表​​数据对象

c# - 计算 IEnumerable<HttpPostedFileBase> 的非空元素

c# - 如何为父对象属性设置默认绑定(bind)属性?

c# - ASP.Net Web API Xml 序列化问题

javascript - 读取单选按钮列表的值

jquery - 耗时任务(或查询)的进度条

asp.net-mvc - 如何为 MVC3 中除特殊 URL 之外的所有 URL 运行自定义路由

asp.net-mvc - 使用 Entity Framework 保存更改/更新数据集中的现有对象,而不必分别设置每个属性