2010-11-08 11 views
6

के माध्यम से एक सूची पास करना हाय किसी को भी "ViewData" के माध्यम से एक सूची को पास करने के बारे में पता है। यही वह है जो मैं कोशिश कर रहा हूं लेकिन मुझे लगता है कि मैं कुछ जगहों पर एक कलाकार खो रहा हूं।asp.net mvc। ViewData

<% List<myNS.CM.AVDTalentApplication.Models.GalleryModel> galList = ViewData["SomeList"]; %> 
<% foreach (var gal in galList) { %> 
<%= gal.uri%> 
<%} %> 

उत्तर

12

इसके लिए

List<GalleryModel> galleryList = new List<GalleryModel>(); 
     galleryList.Add(new GalleryModel() { isApproved = true, uri = "www.cnn1.com" }); 
     galleryList.Add(new GalleryModel() { isApproved = true, uri = "www.cnn2.com" }); 

     ViewData["SomeList"] = galleryList; 

यहाँ मेरी aspx पेज कोड है लाइन:

List<myNS.CM.AVDTalentApplication.Models.GalleryModel> galList = ViewData["SomeList"]; 

यह

var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>; 
+0

महान काम किया। धन्यवाद! मुझे नहीं पता कि अन्य प्रकार का कास्टिंग क्यों काम नहीं करता है। – RayLoveless

0

आप स्पष्ट रूप से आप किस प्रकार के साथ बातचीत करने की जरूरत के रूप में ViewData संग्रह से बाहर वस्तु कास्ट करने के लिए है:

<%@ Import Namespace="myNS.CM.AVDTalentApplication.Models" %> 

<% foreach(var gal in (List<GalleryModel>) ViewData["SomeList"]) %> 
<% { %> 
    <%= gal.uri %> 
<% } %> 
+0

क्षमा करें ... काम नहीं किया। – RayLoveless

+0

@ रे एल - त्रुटि क्या थी? –

+0

इसे उस तरह के कास्टिंग पसंद नहीं आया। जवाब देखें। – RayLoveless

0

को बदलते हैं, तो ध्यान में रखते हुए यह कास्ट करने के लिए की जरूरत है:

<% var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>; %> 

या

<% var galList = (List<myNS.CM.AVDTalentApplication.Models.GalleryModel>) ViewData["SomeList"]; %> 
+0

दूसरा विकल्प – RayLoveless

0

हालांकि सब से ऊपर उत्तर सही हैं, मैं दृढ़ता से इस्तेमाल कर रही है सुझाव है view models का।

+1

ओह शूट नहीं करता है, यह एक टिप्पणी के रूप में था –