2016-06-23 2 views
1

에 참여합니다. 페이징 및 검색 정상적인 페이지에 대해 잘 작동하지만 viewmodel 및 조인 할 수 없습니다. 내가 컨트롤러에서 시도 여기에서어떻게 뷰 모델로 IPagedList 페이징 기능을 사용하여 내가 그물이 MVC ASP에 새로운 오전과 내가 뷰 모델과 IPagedList 페이징 기능을 구현하고 가입하려고의 ASP 닷넷 MVC

public class SponserDisplayViewModel 
    { 
     public Sponser Sponser { get; set; } 
     public SponserDetail SponserDetail { get; set; } 
     public SponserType SponserType { get; set; } 
    } //--- Here All three are different classes. 

: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application 여기

내 뷰 모델 클래스 :

나는이 방법 다음입니다

public ActionResult Index(string searchString, int? page, string btnSearch) 
     { 
      var viewModel = from s in db.Sponsers 
          join st in db.SponserTypes on s.SponserTypeId equals st.Id into st2 
          from st in st2.DefaultIfEmpty() 
          select new SponserDisplayViewModel { Sponser = s, SponserType = st }; 

      if (btnSearch == "Reset") 
      { searchString = string.Empty; } 
      if (!String.IsNullOrEmpty(searchString)) 
      { 
       viewModel = from s in db.Sponsers 
          join st in db.SponserTypes on s.SponserTypeId equals st.Id into st2 
          from st in st2.DefaultIfEmpty() 
          where st.Name.Contains(searchString) 
          select new SponserDisplayViewModel { Sponser = s, SponserType = st }; 
      } 
      int pageSize = 20; 
      int pageIndex = 1; 
      pageIndex = page.HasValue ? Convert.ToInt32(page) : 1; 


//==================Getting error here 
      IPagedList<SponserDisplayViewModel> po = from s in db.Sponsers 
              join st in db.SponserTypes on s.SponserTypeId equals st.Id into st2 
              from st in st2.DefaultIfEmpty().OrderBy(a => a.DisplayOrder).ToPagedList(pageIndex, pageSize) 
              select new SponserDisplayViewModel { Sponser = s, SponserType = st }; 

      return View(po); 
     } 

제안하십시오

답변

0

있어 내 답변 :

var po = from s in db.Sponsers 
     join st in db.SponserTypes on s.SponserTypeId equals st.Id into st2 
     from st in st2.DefaultIfEmpty 
     orderby st.DisplayOrder 
     select new SponserDisplayViewModel { Sponser = s, SponserType = st }; 
return View(po.ToPagedList(pageIndex, pageSize));