2011-10-04 5 views
6
와 뷰에서 모델을 변경 MVC 3에

MVC 3 RenderPage

먼저보기 (index.cshtml) 내보기의 모델을 변경하려고 할 때 나는 문제가 발생

:

@model IEnumerable<MyProgram.MyFrogCollection> 

<h1>Welcome to my frog collection</h1> 
@foreach(MyProgram.Frog frog in Model) 
{ 
    <div class="frogDetails"> 
    @RenderPage("ShowFrogDetails.cshtml", frog); 
    </div> 
} 

@model MyProgram.Frog 

<h3>Name:</h3><div class="detail">@Model.Name</div> 
<h3>Colour:</h3><div class="detail">@Model.Colour</div> 

하우 : 나는 모든 사이트를 통해 사용하고자하는 것을 두 번째보기 (ShowFrogDetails.cshtml) 버전 나는 @RenderPage 라인에 가져올 때 나는 다음과 같은 오류가 개구리 개체 목록에 통과 한 후 index.cshtml 페이지 를 실행하려고하면

서버 오류 '/'응용 프로그램. 사전에 전달 된 모델 항목은 'System.Collections.Generic.List`1 [MyProgram.Frog]'유형이지만이 사전에는 'MyProgram.Frog'유형의 모델 항목이 필요합니다. 내가 ShowFrogDetails.cshtml에서 코드를 제거하고 index.cshtml 결과의 foreach 루프 내에서 인라인 배치한다면

내가 무엇을 기대합니다. 그러나 기존 코드를 재사용하지 않습니다.

어쨌든 RenderPage에서 사용할 단일 개구리 개체로 모델을 변경할 수 있습니까?

건배! 이 같은

답변

7

시도 :

<div class="frogDetails"> 
    @Html.Partial("ShowFrogDetails", frog) 
</div> 
+0

최고, 일을 완벽하게 수행합니다! 건배! – Gin