下面这一段代码的具体执行流程,那个高手能说一下,看不懂,新手求教
IEnumerable<system_acl_resource> data = _context.system_acl_resource;
if (!String.IsNullOrEmpty(Request["resource_type"]))
{
   data = data.Where(c => c.resource_type == Request["resource_type"]);}
var model = new PageInfo<system_acl_resource>
{
   CurrentPageIndex = page != null ? page.Value : 1,
   //确定记录总数(才能计算出PageCount页数)
   RecordCount = data.Count(),
};
// 获取当前页的信息   
 model.PageData = data.OrderBy(c => c.resource_id).Skip((model.CurrentPageIndex - 1) * model.PageSize).Take(model.PageSize).ToList();
  return View(model);

解决方案 »

  1.   

    获取所有类型下的数据列表根据传递参数得到该类型下的数据实例化system_acl_resource类型的对象,并初始化,页面的当前索引,和该类型下所有的记录数得到当前页的数据,并将整个Model返回至视图
      

  2.   

    楼上讲的很清楚啦 
    Linq 唉 老是不想去接触。但确实很优雅. 
      

  3.   


    IEnumerable<system_acl_resource> data = _context.system_acl_resource;  //数据源  
    //获取Reques["resource_type"]的值 如果不为空 则筛选data中c.resource_type等于这个的数据
    if (!String.IsNullOrEmpty(Request["resource_type"]))
    {
      data = data.Where(c => c.resource_type == Request["resource_type"]);
    }
    //实体类实例化并且属性赋值 CurrentPageIndex;RecordCount 
    var model = new PageInfo<system_acl_resource>
    {
      CurrentPageIndex = page != null ? page.Value : 1,
      //确定记录总数(才能计算出PageCount页数)
      RecordCount = data.Count(),
    };
    // 得到该页的数据(排序处理) 然后返回给view  
     model.PageData = data.OrderBy(c => c.resource_id).Skip((model.CurrentPageIndex - 1) * model.PageSize).Take(model.PageSize).ToList();
      return View(model);
      

  4.   

    这明明是委托嘛,怎么是Linq。data = data.Where(c => c.resource_type == Request["resource_type"]);这个是匿名委托。表示c返回的是c.resource_type == Request["resource_type"]的真或假。再根据C的真假,筛选出data。