यह मेरा नियंत्रक कोड है:
का उपयोग कर (var db = नया MatchGamingEntities ()) {db.Matches में मीटर से वर MyMatches = में शामिल होने m.MatchTypeId पर db.MatchTypes में n n.MatchTypeId नई चयन {MatchTypeName = n.MatchTypeName, MatchTitle = m.MatchTitle, दांव = m.Wager} इसके बराबर है; देखेंबैग.मेयमैट्स = माइमट्स। टूलिस्ट (); वापसी देखें (); } यहां मेरा व्यू कोड है:
@ फोरेच (देखें मद में विभिन्न आइटम। मैट मैचों) {& lt; tr & gt; & LT; टीडी & gt; @ Item.MatchTypeName & lt; / td & gt; & LT; टीडी & gt; & Lt; a href = "डिटियलस / @ आईटम। मैटटाइप आईड" & gt; @ आइटम। मैचटाइटल & lt; / a & gt; & Lt; / टीडी & gt; & LT; टीडी & gt; @ स्ट्रिंग.फ़ॉर्मेट ("{0: F}", आइटम। वागर) & lt; / td & gt; & Lt; / टीआर & gt; मेरा कोई भी आइटम नहीं है, मुझे यह कहते हुए एक त्रुटि मिलती है कि वे अज्ञात हैं। मेरे डेटाबेस में रिकॉर्ड हैं और ठीक से सेटअप है। उनके साझा कॉलम में मिलान प्रकार आईपी है मैं नहीं जानता कि यह कैसे पता चलेगा कि प्रश्न या तो के माध्यम से हो रहा है। क्या मैंने इसे गलत तरीके से सेट किया है?
अद्यतन करें:
यह त्रुटि संदेश है:
'ऑब्जेक्ट' में 'MatchTypeName' के लिए कोई परिभाषा नहीं है < / p>
यहां अपवाद
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException द्वारा उपयोगकर्ता कोड संदेश बिना क्रिया था = 'वस्तु' 'MatchTypeName' स्रोत के लिए एक परिभाषा शामिल नहीं है = गुमनाम होस्ट किया गया है DynamicMethods विधानसभा StackTrace: पर CallSite.Target (बंद, CallSite, वस्तु) System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0, Tret] (CallSite साइट, T0 arg0) ग में ASP._Page_Views_Matches_Index_cshtml.Execute () पर पर: \ Users \ एंथोनी \ दस्तावेज़ \ विज़ुअल स्टूडियो 2010 \ प्रोजेक्ट्स \ मैच गेमिंग \ MatchGaming \ Views \ Matches \ Index.cshtml: System.Web.WebPages.WebPageBase.ExecutePageHierarchy () पर System.Web.Mvc.WebViewPage.ExecutePageHierarchy () सिस्टम पर। Web.WebPages.StartPage.RunPage () System.Web.WebPages.WebPageBase.ExecutePageHierarchy पर System.Web.WebPages.StartPage.ExecutePageHierarchy () (कम से WebPageContext pageContext, TextWr आईटीईआर लेखक, System.Web.Mvc.RazorView.RenderView पर WebPageRenderingBase प्रारंभ पृष्ठ) (ViewContext viewContext, TextWriter लेखक, उदाहरण वस्तु) System.Web.Mvc.BuildManagerCompiledView.Render पर (ViewContext viewContext, TextWriter लेखक) System.Web.Mvc पर। System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (सिस्टम नियंत्रक कान्टेक्स्ट कंट्रोलर कंटबॉक्स, एक्शनआरसल्ट एक्शन रेश्ल्ट) पर System.Web.Mvc.ControllerActionInvoker। & Lt; & gt; c__DisplayClass1c। और lt; InvokeActionResultWithFilters & gt; b__19 () पर System.Web पर देखें ResultBase.ExecuteResult (नियंत्रक कान्टेस्ट संदर्भ) .Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter फिल्टर, ResultExecutingContext preContext, Func`1 निरंतरता) InnerException:
यह इसलिए है क्योंकि आपका LINQ अंतिम परिणाम के रूप में एक अनाम प्रकार का उपयोग करता है (नया चयन करें {} बिट)। इस दृश्य में, क्योंकि ViewBag गतिशील है, यह हल करने में सक्षम है कि "माईमैट्स" संपत्ति है, लेकिन उस वस्तु को हल करने का कोई तरीका नहीं है, जो संग्रह में संग्रहीत है, केवल एक वस्तु से परे।
इसे हल करने के लिए एक विकल्प एक नया वर्ग बनाना होगा, अर्थात्:
सार्वजनिक वर्ग MatchInfo {सार्वजनिक स्ट्रिंग MatchTypeName {get; सेट; } सार्वजनिक स्ट्रिंग MatchTitle {get; सेट; } सार्वजनिक दशमलव दांव {प्राप्त; सेट; }} फिर नई {} चुनने के बजाय, आप नए MatchInfo {} का चयन कर सकते हैं और गुणों को आरंभ कर सकते हैं। दृश्य में पुनरावृत्ति चरण में, आप इसे इसमें बदल सकते हैं:
@ फोरेच (ViewBag.MyMatches में MatchInfo आइटम) {} अब दृश्य के साथ काम करने के लिए एक मजबूत प्रकार है, और गुण (MatchTypeName, MatchTitle, आदि) को हल होगा।
Comments
Post a Comment