我有一个要求,我必须实现 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);
}
super 简单的解决方案,并没有真正妨碍您。
这是一个非常容易解决的问题,所以不要依赖任何可能在以后限制你或让你沮丧的太重的东西。
关于asp.net-mvc - 在 MVC4.0 中使用分页实现类别/子类别的更好选择是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866101/