2014-07-25 8 views
9

प्राप्त करने के लिए छवि प्रॉपर्टी आईडी का उपयोग कैसे करें, ठीक है, मैं उम्ब्राको/सी # के लिए बहुत नया हूं और जो मैं करने की कोशिश कर रहा हूं वह है कि मेरे आवेदन के होम पेज के लिए बैनर बनाने और @bannerUrl के लिए कस्टम मीडिया प्रकार के माध्यम से लूप है हमेशा छवियों की संपत्ति आईडी लौटाता है न कि संसाधन के लिए फ़ाइल पथ। आप Umbraco में बनाए गए कस्टम मीडिया प्रकार से छवि फ़ाइल पथ को पुनर्प्राप्त करने के बारे में कैसे जाएंगे। उदाहरण के लिएउम्ब्राको यूआरएल

कोड देखें:

var mediaFolder = Umbraco.Media(mediaFolderId); 
var banners = mediaFolder.Children(); 

foreach (var banner in banners) 
    { 
    var bannerUrl = banner.image; 

     <div style="background-image:url(@bannerUrl);"></div> 

} 

चर bannerUrl हमेशा डिफ़ॉल्ट रूप से छवि आईडी और नहीं URL के लिए फ़ाइल पथ देता है। मैं फ़ाइल पथ कैसे काम कर सकता हूं?

Url = 'banner.Url' threw an exception of type 'System.NotSupportedException' 

आप हालांकि मैं .url पंक्तियों के साथ कुछ इस्तेमाल कर सकते हैं लेकिन यह है कि खुराक ही नहीं की हैं: जब वी.एस. में डीबगर में बैनर ऑब्जेक्ट की सामग्री का निरीक्षण मैं यूआरएल संपत्ति का नोटिस निम्न त्रुटि है काम, तो कोई सुझाव है कि मैं यूम्ब्राको में गतिशील तरीके से यूआरएल छवि छवि को प्राप्त करने के बारे में कैसे जाऊंगा।

धन्यवाद।

उत्तर

15

Solutioin अगर किसी को भी इस पर stumbles के लिए होता है: एक बार आप "मीडिया आईडी" आप भी UmbracoHelper उपयोग कर सकते हैं

var bannerId = Umbraco.Media(banner.image); //banner.image is the property id. 
var bannerUrl = bannerId.Url; 
+0

पर ठोकर खाई और इस्तेमाल किया। सीधा समाधान के लिए बहुत धन्यवाद। –

+0

आप इसका उपयोग नहीं करना चाहते हैं। यह डेटाबेस तक पहुंचता है और पेज लोडिंग समय धीमा करता है। नीचे निर्दिष्ट UmbracoHelper का प्रयोग करें। – Base33

6

एक MVC नियंत्रक/एपीआई Contoller के भीतर भी ऐसा ही करने के लिए।

var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); 
var image = umbracoHelper.Media(mediaID);  // mediaID = the (int)ID of the media 
var imageURL = image.url;      // imageURL now has the site root relative path of the media item 
2

यह बहुत आजकल Umbraco में दृढ़ता से टाइप किया मॉडल का उपयोग करने के लिए बेहतर है:

var bannerMediaItem = Umbraco.TypedMedia(banner.image); //banner.image is the property id. 
var bannerUrl = bannerMediaItem.Url; 
संबंधित मुद्दे