디스플레이 템플릿을 사용할 수 있습니다. 기본보기에 따라서 : Benefits
유형 List<BaseBenefit>
의 뷰 모델에 속성을 것입니다
@Html.DisplayFor(x => x.Benefits)
. 이제 당신이해야 할 다른 가능한 유형의 표시 템플릿을 정의하는 것입니다 :
~/Views/Shared/DisplayTemplates/SpecificBenefit1.cshtml
:
@model SpecificBenefit1
...
~/Views/Shared/DisplayTemplates/SpecificBenefit2.cshtml
: 디스플레이 템플릿의
@model SpecificBenefit2
...
위치와 이름이 중요합니다. ~/Views/Shared/DisplayTemplates 폴더에 있어야하며, 컨트롤러간에 다시 사용하지 않을 경우 ~/Views/SomeController/DisplayTemplates
폴더에서도 정의 할 수 있습니다. 템플리트의 이름은 목록의 요소 유형과 동일해야합니다.
열거 형 속성의 주보기에서 DisplayFor를 사용하면 ASP.NET MVC는이 목록의 각 요소에 대해 해당하는 표시 템플릿을 자동으로 호출합니다.
그래서 뷰가 기본 유형을 얻더라도 실제 유형을 사용합니까? –
캐스팅하지 않습니까? –
@GuyZ, 예, ASP.NET MVC는 런타임 유형을 사용하여 적절한 표시/편집기 템플릿을 선택합니다. –