加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC4.0中使用分页实现Category / Sub Category

发布时间:2020-12-16 09:39:32 所属栏目:asp.Net 来源:网络整理
导读:我有一个要求,我必须实现Paging和Current Page记录. 该记录分类为类别和子类别,如下所述. 如果 你注意截图,我必须实际显示当前页面的类别和子类别.现在,这是一个静态页面. 我们是否有任何内置功能/ Nuget有助于在MVC4中快速完成此任务. 解决方法 老实说,这并
我有一个要求,我必须实现Paging和Current Page记录.
该记录分类为类别和子类别,如下所述.

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

我们是否有任何内置功能/ Nuget有助于在MVC4中快速完成此任务.

解决方法

老实说,这并不像你认为的那样糟糕.我通常构建一个看起来像这样的输入模型.

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);
 }

超级简单的解决方案,没有什么真的妨碍你.

这是一个非常简单的问题需要解决,所以不要依赖任何可能会限制你的东西,或者以后会让你感到沮丧.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读