2011-04-07 2 views
0

뷰 모델을 사용하는 컨트롤러에서 채워지는 MVC3 뷰가 있습니다. Viewmodel은 저장소의 채우기 메소드를 사용하여 초기화/채워집니다. 이제 부분 뷰를 만들고 일부 섹션을 숨기려고합니다. 뷰 모델을 채우기 위해 다른 메서드를 만들어야 하나 viewmodela를 잘 깨야합니까? 제발 제안하십시오부분 뷰 채우기

답변

2

그 자체가 각각의 섹션에 바인딩 될 다른보기 모델을 나타내는 다른 복잡한 속성을 모델링 할 수 있습니다. 또한 섹션을 표시할지 여부를 나타내는 부울 속성을 포함 할 수 있습니다. 예 :

@if (Model.ShouldShowFooSection) 
{ 
    @Html.DisplayFor(x => x.Foo) 
} 

나 :

@if (Model.ShouldShowFooSection) 
{ 
    @Html.Partial("_Foo", Model.Foo) 
} 
+0

viewmodel은 어떻습니까? 기본 뷰 모델을 파트로 분해하여 파트를 부분 뷰에 채울 수 있도록 – DotnetSparrow

+0

@DotnetSparrow, 뷰 모델의 각 속성은 해당 부분 뷰가 강하게 입력되는 다른 뷰 모델을 나타낼 수 있습니다. 이 하위 뷰 모델에는이 부분 뷰에 필요한 모든 필요한 속성이 포함됩니다. –

1

이이 부분 뷰를 지원하기 위해 새로운 뷰 모델 또는 저장소 방법을 정의 할 수이 말한다 아무것도. 시나리오의 세부 사항에 따라 가치가 있는지 여부를 결정해야합니다.

장기적인 유지 관리로 문제를 해결하는 것이 더 좋을 수 있지만 이는 설계상의 선택입니다.

리포지토리의 작동 방식에 따라 데이터의 하위 집합 만 검색하면 성능이 향상 될 수 있지만 단일 리포지토리를 호출하여 여러 페이지를 렌더링 할 경우 성능이 저하 될 수 있습니다.