모두 익숙해야하는 예제를 제공하려면 Asp.Net MVC에서 Facebook 벽 페이지를 작성한다고 상상해보십시오. 벽에는 다양한 종류의 게시물 (즉, 상태 업데이트, 사진, 비디오, 링크 등)이 있습니다. 모든 게시물은 벽 아래로 표시되며, 어떤 게시물 종류에 따라 다르게 렌더링됩니다. 이 작업을 수행하는 가장 우아한 방법은 다형성입니다. 포스트 유형을 통해 foreach하고 각 하위 유형이 구현하는 렌더링 메소드를 호출합니다. Web Forms의 코드 숨김에서 이와 비슷한 작업을했지만 나는, 만약 다른 블록의 거대한 목록을 가진 짧은 우려를 혼합하지 않고 MVC에서이 작업을 수행하는 방법을 알아낼 수 없습니다.Asp.Net MVC 다형성 내부보기
@foreach(Post post in Model.Posts)
{
if(post is A)
{
<div>Different Content</div>
}
else if(post is B)
{
<div>Different Content</div>
}
else if(post is C)
{
<div>Different Content</div>
}
}
대신 단지
@foreach(Post post in Model.Posts)
{
post.render();
}
,536을
어떻게하면 두 번째 부분과 같이 더 많은 것을 유지 보수 할 수 있습니까?
응답 해 주셔서 감사합니다. 처음 두 점을 이해하는 데 어려움이 있습니다. 그 말을 다시 할 수 있겠 니? 컬렉션 하나가 아니라 하나의 게시물 만 표시 하시겠습니까? – quitstalin
필자가 제시 한 답변을 업데이트했습니다. –
그래, 그게 도움이되었고 나는 이론적으로이 해결책을 정말로 좋아한다. 내 프로젝트에서 어떻게 작동하는지 확인해야 할 것이다. 고마워요 – quitstalin