欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何在ASP.NET MVC5网站中开发显示文章列表

来源:本站整理 作者:佚名 时间:2016-06-03 TAG: 我要投稿

老习惯,先上个效果图:

1、在IBLL
在InterfaceCommonModelService接口中添加获取公共模型列表的方法
首先排序方法
///
 /// 排序
 ///
 ///
数据实体集
 ///
排序代码[默认:ID降序]
 ///
 IQueryableCommonModel> Order(IQueryableCommonModel> entitys, int roderCode);
查询数据方法
///
 /// 查询分页数据列表
 ///
 ///
总记录数
 ///
模型【All全部】
 ///
页码
 ///
每页记录数
 ///
标题【不使用设置空字符串】
 ///
栏目ID【不使用设0】
 ///
用户名【不使用设置空字符串】
 ///
起始日期【可为null】
 ///
截止日期【可为null】
 ///
排序码
 /// 分页数据列表
 IQueryableCommonModel> FindPageList(out int totalRecord, int pageIndex, int pageSize, string model, string title, int categoryID, string inputer, NullableDateTime> fromDate, NullableDateTime> toDate, int orderCode);
2、BLL
在CommonModelService写方法实现代码,内容都很简单主要是思路,直接上代码
public IQueryableCommonModel> FindPageList(out int totalRecord, int pageIndex, int pageSize, string model, string title, int categoryID, string inputer, NullableDateTime> fromDate, NullableDateTime> toDate, int orderCode)
 {
  //获取实体列表
  IQueryableCommonModel> _commonModels = CurrentRepository.Entities;
  if (model == null || model != "All") _commonModels = _commonModels.Where(cm => cm.Model == model);
  if (!string.IsNullOrEmpty(title)) _commonModels = _commonModels.Where(cm => cm.Title.Contains(title));
  if (categoryID > 0) _commonModels = _commonModels.Where(cm => cm.CategoryID == categoryID);
  if (!string.IsNullOrEmpty(inputer)) _commonModels = _commonModels.Where(cm => cm.Inputer == inputer);
  if (fromDate != null) _commonModels = _commonModels.Where(cm => cm.ReleaseDate >= fromDate);
  if (toDate != null) _commonModels = _commonModels.Where(cm => cm.ReleaseDate  toDate);
  _commonModels = Order(_commonModels, orderCode);
  totalRecord = _commonModels.Count();
  return PageList(_commonModels, pageIndex, pageSize).AsQueryable();
 }
 public IQueryableCommonModel> Order(IQueryableCommonModel> entitys, int orderCode)
 {
  switch(orderCode)
  {
  //默认排序
  default:
   entitys = entitys.OrderByDescending(cm => cm.ReleaseDate);
   break;
  }
  return entitys;
 }
3、web
由于CommonModel跟我们前台显示的数据并不一致,为了照顾datagrid中的数据显示再在Ninesky.Web.Models中再构造一个视图模型CommonModelViewModel
using System;
namespace Ninesky.Web.Models
{
 ///
 /// CommonModel视图模型
 ///
 /// 创建:2014.03.10
 ///
 ///
 public class CommonModelViewModel
 {
 public int ModelID { get; set; }
 ///
 /// 栏目ID
 ///
 public int CategoryID { get; set; }
 ///
 /// 栏目名称
 ///
 public string CategoryName { get; set; }
 ///
 /// 模型名称
 ///
 public string Model { get; set; }
 ///
 /// 标题
 ///
 public string Title { get; set; }
 ///
 /// 录入者
 ///
 public string Inputer { get; set; }
 ///
 /// 点击
 ///
 public int Hits { get; set; }
 ///
 /// 发布日期
 ///
 public DateTime ReleaseDate { get; set; }
 ///
 /// 状态
 ///
 public int Status { get; set; }
 ///
 /// 状态文字
 ///
 public string StatusString { get { return Ninesky.Models.CommonModel.StatusList[Status]; } }
 ///
 /// 首页图片
 ///
 public string DefaultPicUrl { get; set; }
 }
}
在ArticleController中添加一个返回json类型的JsonList方法
///
 /// 文章列表Json【注意权限问题,普通人员是否可以访问?】
 ///
 ///
标题
 ///
录入
 ///
栏目
 ///
日期起
 ///
日期止
 ///
页码
 ///
每页记录
 ///
 public ActionResult JsonList(string title, string input, Nullable category, NullableDateTime> fromDate, NullableDateTime> toDate, int pageIndex = 1, int pageSize = 20)
 {
  if (category == null) category = 0;
  int _total;
  var _rows = commonModelService.FindPageList(out _total, pageIndex, pageSize, "Article", title, (int)category, input, fromDate, toDate, 0).Select(

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载