2011-10-04 4 views
2

가능한 중복 :
ASP.NET MVC - View with multiple modelsMVC 여러 데이터 모델은보기에 전달

내가 내보기에 내 컨트롤러에서 여러 데이터 모델을 통과 할 수있는 방법, ASP.NET MVC 3.0을 사용하여 ? 나는 우아한 해결책을 원하고 있습니다 ... 고마워요!

은 BTW - 내가 코드 샘플을 제공 할 수 있지만, 나는 이것이 불행히도, 그것을 할 수있는 진정으로 우아한 방법이없는 것이

답변

2

을 보장하기에 충분하지 않을만큼 일반적인 생각합니다. 내 선호하는 방법은 두 개체를 캡슐화하고보기로 보냅니다.

public class City{ 
public Mall TheMall; 
public School TheSchool; 
} 

그런 다음보기는 강력 도시로 입력해야합니다, 당신은 당신이 필요로 액세스 할 수 Model.TheMall.PropertyModel.TheSchool.Property을 사용합니다.

또 다른 방법은 ViewData 가방을 사용하는 것입니다. 당신이 할 수있는 것은 이러한처럼 채울 수 있습니다 :보기에

ViewData["City"] = "Toronto"; //random string 
ViewData["Mall"] = new TheMall(...); 
return View(MyViewName); 

그 다음을, 당신이 당신이 컨트롤러에 할당 된 키 사용하여 액세스해야합니다 ("도시"를,이 경우 "몰").

희망 하시겠습니까?

+1

첫 번째 방법은 꽤 일반적으로 ViewModel로 알려져 있으며 일반적으로 사람들은 Models 폴더와 별도로 ViewModels 폴더를 보유합니다. ModelProjection은 개인적으로 UI에 특화된 모델의 투영을 구성 할 수있게 해주는 본질적으로 추상화 레이어이기 때문에 ModelProjections를 호출합니다. – AaronLS