2011-10-04 22 views
6

tôi đang gặp vấn đề khi cố gắng thay đổi mô hình của quan điểm của tôi trong MVC 3.MVC 3 Thay đổi Model trong xem với RenderPage

Lượt xem đầu tiên (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> 
} 

Quan điểm thứ hai (ShowFrogDetails.cshtml), mà tôi muốn sử dụng trên khắp các trang web:

@model MyProgram.Frog 

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

Howe ver khi tôi cố gắng để chạy các trang index.cshtml sau khi đi qua trong một danh sách các đối tượng ếch tôi nhận được lỗi sau khi nhận được đến dòng @RenderPage:

Server Error in '/' Application. Mục mẫu được chuyển vào từ điển là loại 'System.Collections.Generic.List`1 [MyProgram.Frog]', nhưng từ điển này yêu cầu một mục kiểu mẫu 'MyProgram.Frog'.

Nếu tôi là để loại bỏ các mã từ ShowFrogDetails.cshtml và đặt nó trong dòng trong vòng lặp foreach của index.cshtml kết quả là những gì tôi mong đợi. Tuy nhiên, điều này không sử dụng lại mã hiện có.

Có cách nào tôi có thể thay đổi mô hình thành một đối tượng Frog duy nhất để sử dụng trong RenderPage không?

Chúc mừng!

Trả lời

7

Hãy thử như thế này:

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

Awesome, mà không được công việc một cách hoàn hảo! Chúc mừng! – Gin

Các vấn đề liên quan