/// <summary> /// 获取文章列表 /// </summary> /// <param name="info">查询条件</param> /// <param name="isLoadSideInfo">是否加载侧边数据</param> /// <returns></returns> private PagedList <Article> GetList(SearchInfo info, bool isLoadSideInfo = true) { var pageSize = 15;//默认 var setting = Configs.ConfigHelper.GetBasicConfig(); if (setting != null) { pageSize = setting.WebsitePageSize; } if (isLoadSideInfo) { LoadSideInfo(); } var state = (int)ArticleStatus.Normal; var query = _articleRepository.Table.Where(p => p.State == state); //关键字 if (!string.IsNullOrEmpty(info.Keywork)) { query = query.Where(p => p.Title.Contains(info.Keywork)); } //标签 if (!string.IsNullOrEmpty(info.TagName)) { query = query.Where(p => p.Tags.Contains(info.TagName)); } //分类 if (!string.IsNullOrEmpty(info.CategoryName)) { var category = _categoryRepository.Table.Where(p => p.CategoryName == info.CategoryName).FirstOrDefault(); if (category != null) { query = query.Where(p => p.CategoryId == category.Id); } } //归档 if (!string.IsNullOrEmpty(info.ArchiveName)) { var date = Convert.ToDateTime(info.ArchiveName); int days = DateTime.DaysInMonth(date.Year, date.Month); var maxDate = Convert.ToDateTime(info.ArchiveName + days + "日"); query = query.Where(p => p.CreateTime >= date && p.CreateTime <= maxDate); } query = query.OrderByDescending(p => p.IsTop) .ThenByDescending(p => p.Sort) .ThenByDescending(p => p.CreateTime); return(query.ToPagedList(info.PageIndex, pageSize, true)); }
public ActionResult AJaxLoadList() { //获取页码 var page = Request["page"]; var searchInfo = new SearchInfo(Convert.ToInt32(page)); //获取查询条件 var url = Request["p"]; var pIndex = url.LastIndexOf('/'); if (pIndex > 0) { var arr = url.TrimStart('/').Split('/'); if (arr.Length == 2) { if (arr[0] == "categories") { searchInfo.CategoryName = arr[1]; } if (arr[0] == "archive") { searchInfo.ArchiveName = arr[1]; } if (arr[0] == "tag") { searchInfo.TagName = arr[1]; } } } else { if (url.IndexOf('?') >= 0) { var arr = url.TrimStart('?').Split('='); if (arr.Length == 2) { searchInfo.Keywork = arr[1]; } } } var pages = GetList(searchInfo, false); var items = pages.Items; var list = items.Select(p => { return(new { p.Title, p.IsTop, CreateTime = p.CreateTime.ToString("yyyy-MM-dd HH:mm"), p.Id }); }); return(Json(new { data = list, page = pages.TotalPages }, JsonRequestBehavior.AllowGet)); }