2012-12-21 4 views
1

저는 ASP.NET MVC 4 C# 응용 프로그램을 가지고 있으며 하나의보기에서 3 가지 모델의 데이터를 표시하려고합니다.3 하나의 모델 @foreach로보기

모델 A에 대한보기에서
Model A | Model B | Model C 
ID  | ID  | ID 
      A_ID | B_ID 

, 나는 B에 연결되어 데이터를 표시 할 수 있기를 원하고 지금 C.

:

스키마

는 다음과 같이 외부 키를 통해 관련 , 모델 A에 대한보기 (세부 사항)에서 내가 할 수있는 :

@model Application.Models.A 

@foreach (var b Model.B) 
    { 
     @Html.DisplayFor(modelB => B.Title) 
     <br /> 
    } 

내가 할 수 있도록하려면 다음을 수행합니다 :

@foreach (var b Model.B) 
    { 
     @Html.DisplayFor(modelB => B.Title) 

     @foreach (var c Model.B.C) 
     { 
      @Html.DisplayFor(modelC => C.Title) 
      <br /> 
     } 

     <br /> 
    } 

Ruby on 레일즈에서이 작업을 수행 할 수 있습니다. MVC 4에서이 작업을 수행하려면 어떻게해야합니까?

답변

0

나는 그것을 알아 냈다.

모델, 컨트롤러 및 관계를 올바르게 설정했습니다. 다음과 같이 내 시각을 수정해야했습니다.

@foreach (var b in Model.Bs) 
    { 
     @Html.DisplayFor(B => b.Title) 
     <br /> 
     foreach (var c in b.Cs) 
     { 
      @Html.DisplayFor(C => c.Title) 
      <br /> 
     } 
    } 

고마워.

1

인기있는 ORM 도구 (예 : Nhibernate, Entity Framework)를 사용하는 경우 이러한 관계를 모델링 할 수 있습니다. 간단히 말해 위 스키마를 모델링 한 후에 Application.Models.A의 인스턴스를보기에 전달할 수 있습니다. 이 유형은 다른 엔터티와 필요한 관계가 있기 때문입니다.

그러나 엔티티 모델을 뷰에 직접 전달하는 것이 좋지 않기 때문에 별도의 뷰 모델을 만드는 것이 훨씬 더 좋습니다.