2013-06-01 3 views
10

मेरे पास नीचे दिए गए ग्राहक ऑब्जेक्ट को प्रदर्शित करने का एक दृश्य है।'मॉडल' घोषणा के साथ संघर्ष 'System.Web.Mvc.WebViewPage <TModel> .Model

public Class Customer 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public Address AddressInfo { get; set; } 
} 

public class Address 
{ 
    public string Details { get; set; } 
    public City CityInfo { get; set; } 
    public Region RegionInfo { get; set; } 
} 

और ग्राहक वापस जाने के लिए एक नियंत्रक होने

public ActionResult GetCustomer(long Id) 
{ 
    return View("Customer",GetCustomer(Id)); 
} 

और अंत में देखें है,

[Customer.cshtml] 
@model Customer; 
Name: @Model.Name 
Address Details: @Html.Partial("Address",Model) 

[Address.cshtml] 
@model Customer; 
@Model.CityInfo.Name, @Model.RegionInfo.Name 

सभी देखें में ठीक लग रहा है। लेकिन मुझे @ एचटीएमएल.पर्टियल ("पता", मॉडल) पर घोषणा 'सिस्टम.Web.Vvc.WebViewPage.Model "त्रुटि के साथ' मॉडल 'संघर्ष मिल रहा है मैंने कई परियोजनाओं में पहले ऐसा किया था और मुझे नहीं मिला मुसीबत।

मुझे आगे बढ़ने का कोई संकेत नहीं है।

क्या कोई इस समस्या को हल करने में मेरी सहायता कर सकता है।

मैंने इस तरह की त्रुटि के बारे में कई पोस्ट देखी हैं। लेकिन वे @ एचटीएमएल। पार्टियल() के साथ नहीं थे।

धन्यवाद & सादर,

Saravanakumar आर

उत्तर

30

मैं समस्या सुलझा ली है। दर्शकों के लिए धन्यवाद।

समस्या मेरे दृश्य में थी, मैं कहीं भी मॉडल => मॉडल का उपयोग कर रहा था। यह मॉडल => मॉडल होना चाहिए।

+0

होना चाहिए, मुझे अभी भी एक ही समस्या है, कोई विचार क्यों यह मुद्दा है ... राजधानियों को बदलने से यह मेरे लिए तय हो गया है, लेकिन मुझे यह जानना अच्छा लगता है कि क्यों। – Waller

+0

मॉडल IView की एक संपत्ति है। जहां मॉडल डेटा (मॉडल) का संदर्भ है जो हम नियंत्रक क्रिया से वापस आते हैं। :-) – Sravan

0

Model बल्कि के अपने आंशिक में टाइप Address से प्रकार Customer की है। आप AddressInfo संपत्ति में पारित करने के लिए Address को Address.cshtml में मॉडल प्रकार बदल सकते हैं और आंशिक करने के लिए कॉल को बदलने की जरूरत:

@Html.Partial("Address", Model.AddressInfo) 

आपके व्यू कोड हो जाता है:

[Customer.cshtml] 
@model Customer; 
Name: @Model.Name 
Address Details: @Html.Partial("Address",Model.AddressInfo) 

[Address.cshtml] 
@model Address; 
@Model.CityInfo.Name, @Model.RegionInfo.Name 
+0

आपके उत्तर के लिए धन्यवाद, लेकिन मैं पता.cshtml मॉडल को पते में बदल नहीं सकता क्योंकि मुझे TryUpdateModel में मानों की आवश्यकता है। – Sravan

+0

आपको इसे 'पता' में बदलना होगा क्योंकि 'सिटीइन्फो' और 'क्षेत्रइन्फो'' पता' के गुण हैं 'ग्राहक' – levelnis

+0

आप 'TryUpdateModel' का उल्लेख क्यों कर रहे हैं? क्या आप मॉडल बाध्यकारी मैन्युअल रूप से करने की कोशिश कर रहे हैं? यह स्वचालित – levelnis

संबंधित मुद्दे