2012-12-11 17 views
5

में एक यूआरएल से मेल खाने वाला आइटम प्राप्त करें मैं जिस साइट पर हूं, मैं रेफरर का उपयोग करने की कोशिश कर रहा हूं ताकि AJAX अनुरोध सही यूआरएल से आ रहे हैं।साइटकोर

ऐसा करने के लिए मैं एक आइटम में यूआरएल को हल करने के लिए साइटकोर प्राप्त करना चाहता हूं। उदाहरण के लिए,

http://www.mysite.com/abc/def

पथ

sitecore/Content/MySite/Home/abc/def

मेरी कोड में इस बारे में जाने के लिए सिफारिश की तरीका क्या है पर आइटम के लिए हल कर सकते हैं?

उत्तर

1

है वास्तव में आप (आपके AJAX अनुरोध और इस तरह के साथ) करने के लिए कोशिश कर रहे हैं क्या, लेकिन अगर आप आइटम sitecore/content/MySite/Home/abc/def हल करने http://www.mysite.com/abc/def चाहते हैं, तो आप इस तरह web.config में अपने <site> विन्यस्त करने की जरूरत नहीं:

<site name="MySite" hostName="www.mysite.com" rootPath="/sitecore/content/MySite" startItem="/Home" *other attributes here* /> 
1

आप विधि ItemManager.GetItem(itemPath, language, version, database, securityCheck) का उपयोग आधारित यह (पूर्ण) पथ है पर किसी आइटम को हल करने के कर सकते हैं।

6

सभी उत्तरों के लिए धन्यवाद लेकिन उनमें से कोई भी मुझे आवश्यक सब कुछ नहीं किया। यह मेरे लिए काम किया।

var url = new Uri(...); 

// Obtain a SiteContext for the host and virtual path 
var siteContext = SiteContextFactory.GetSiteContext(url.Host, url.PathAndQuery); 

// Get the path to the Home item 
var homePath = siteContext.StartPath; 
if (!homePath.EndsWith("/")) 
    homePath += "/"; 

// Get the path to the item, removing virtual path if any 
var itemPath = MainUtil.DecodeName(url.AbsolutePath); 
if (itemPath.StartsWith(siteContext.VirtualFolder)) 
    itemPath = itemPath.Remove(0,siteContext.VirtualFolder.Length); 

// Obtain the item 
var fullPath = homePath + itemPath; 
var item = siteContext.Database.GetItem(fullPath); 
+0

यह बहुभाषी प्रणाली के मामले में अच्छी तरह से काम नहीं कर सकता है। ?? – theusguy

+0

मेरे वर्चुअल फ़ोल्डर में एक हाइफ़न ('-') था, इसलिए मुझे पथ की शुरुआत में वर्चुअल फ़ोल्डर की जांच के बाद कॉल को 'डीकोडनाम' पर ले जाने की आवश्यकता थी। @theusguy आप गेटिटेम को एक भाषा के साथ भी कॉल कर सकते हैं, अगर आपने यूआरएल से भी इसे निकाला है (या आपने इसे एसएससी_लांग कुकी से पढ़ा है)। –

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