2015-01-15 2 views
0

두 테이블 pagecontent 및 프로그램이 있습니다. 내 홈페이지보기에서 두 테이블의 데이터를 표시해야합니다. 여기 MVC/면도기 내보기에서 두 개의 별도의 데이터베이스에서 데이터를 표시하는 방법

내 HomeController입니다 :

public class HomeController : Controller 
{ 
    [HandleError] 
    public ActionResult Index() 
    { 
     using (var dbContext = new webcastEntities()) 
     { 


      pagecontent homepageText = dbContext.pagecontents.OrderByDescending(o => o.pageID).FirstOrDefault(); 

      IOrderedQueryable<programs_tbl> programList = 
       dbContext.programs_tbl.Where(q => q.closed != "DEL").OrderBy(o => o.startDate); 


      IQueryable<JoinedContent> results = dbContext.pagecontents 
       .Join(dbContext.programs_tbl, 
        t1 => t1.pageID, 
        t2 => t2.ID, 
        (t1, t2) => 
         new JoinedContent(t1, t2)); 

      return View(results.ToList()); 

     } 
    } 
} 

이는 뭐죠 내보기 :

@using gcus.com.ViewModels.ContentHolders 
@model IEnumerable<JoinedContent> 
@{ 
ViewBag.Title = "Home"; 
} 
<div class="col-md-6" style="border-right: 2px solid #c0c0c0;"> 
         @foreach (JoinedContent item in @Model) 
         { 
          //@Html.Raw(item.Value1.content) 
          @Html.Raw(item.PageContent.pageText) 
         } 
        </div> 

이 내 클래스 :

public class JoinedContent 
{ 


     public pagecontent PageContent { get; set; } 

     public programs_tbl ProgramsTable { get; set; } 

     public JoinedContent(pagecontent pageContent, programs_tbl programsTable) 
     { 
      PageContent = pageContent; 
      ProgramsTable = programsTable; 
     } 

} 
} 

나는 디버그 간략한 할 수 있었다 내 데이터가 변수에 들어가서 데이터가 문제가되지 않지만 데이터를 내 뷰 i에 보낼 수 있는지 확인하십시오. 문제 야. 그건 항상 null을 반환 .... 제발 도와주세요!

답변

0

클래스에서 IEnumerable 함수를 사용하여 두 쿼리를 실행 한 다음 결과를 결합하여 뷰에 추가하고 모두 작업했습니다.

3

두 개체에 대한 속성을 가진 새 클래스 개체를 만들 수 있습니다. 그런 다음 인스턴스를 작성하고 적절한 사이트를 설정 한 다음이를 모델로 전달하십시오. 또는 각 객체를 ViewBag에 배치하고이를 통해 액세스 할 수 있습니다. 첫 번째 옵션을 권하고 싶습니다.

관련 문제