2011-10-04 13 views
6
साथ दृश्य में मॉडल बदलने

मैं समस्या आ रही है जब मेरे विचार के मॉडल 3.MVC 3 RenderPage

पहले दृश्य (index.cshtml) बदलने के लिए MVC में की कोशिश कर रहा:

@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), ver जब मैं मेंढक वस्तुओं जब @RenderPage लाइन के लिए हो रही मैं निम्नलिखित त्रुटि मिलती है की एक सूची में पास करने के बाद index.cshtml पेज चलाने का प्रयास: '/' आवेदन में

सर्वर त्रुटि। शब्दकोश में मॉडल मॉडल 'System.Collections.Generic.List`1 [MyProgram.Frog]' है, लेकिन यह शब्दकोश को 'MyProgram.Frog' प्रकार के मॉडल आइटम की आवश्यकता है।

अगर मैं ShowFrogDetails.cshtml से कोड निकाल दिए और की index.cshtml परिणाम foreach पाश के भीतर इन-लाइन डाल रहे थे कि मैं क्या उम्मीद करेंगे कर रहे हैं। हालांकि यह मौजूदा कोड का पुन: उपयोग नहीं करता है।

क्या वैसे भी मैं रेंडरपेज में उपयोग के लिए मॉडल को एक फ्रॉग ऑब्जेक्ट में बदल सकता हूं?

चीयर्स!

उत्तर

7

इस तरह का प्रयास करें:

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

बहुत बढ़िया, उस काम पूरी तरह से करता है! चीयर्स! – Gin