Wednesday, 15 June 2011

c# - Linking to Home with LinkManager and languageEmbedding="always" -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 3 जवाब

मैं एक बहुभाषी वेबसाइट का निर्माण कर रहा हूं साइटकोर 7.5 में, और मैं हमेशा यूआरएल की शुरुआत में भाषा को दिखाना चाहता हूं, उदा mysite.com/en/article1.aspx

इसे प्राप्त करने के लिए, मैंने languageEmbedding = "के साथ ब्लॉग के अनुसार LinkManager कॉन्फ़िगरेशन को पैच किया है हमेशा "। अब, जब Sitecore.Context.SetLanguage () के माध्यम से भाषा को बदलते समय, यूआरएल इसी प्रकार के लिंक्स कोड पर सही ढंग से बदलता है, जैसे कि लिंक पर निम्नलिखित ... अब तक बहुत अच्छा!

< P> समस्या उत्पन्न होती है जब मैं घर तत्व से लिंक करने का प्रयास करता हूं, उदाहरण के लिए एक रीडायरेक्ट के माध्यम से:

  var homeItem = Sitecore.Context.Database.GetItem (& lt; GUID को घर & gt; ); Var url = LinkManager.GetItemUrl (homeItem); (यूआरएल) पुनर्निर्देशित करें;  

परिणामस्वरूप यूआरएल mysite.com/en.aspx है, जो कि Default.aspx नामक एक पृष्ठ को दिखाता है वेबसाइट रूट फ़ोल्डर में स्थित है । बेशक, मैं इसे mysite.com/en / को निर्देशित करना चाहता हूं, जो कि दी गई भाषा में घरेलू आइटम से मेल खाती है और मैन्युअल रूप से दर्ज होने पर काम करती है।

ऐसा लगता है मुझे कि LinkManager में एक बग है, इसलिए यह यूआरएल में भाषा को एम्बेड करते समय सही ढंग से घर के मद को हल नहीं कर सकता। या यह सिर्फ मुझे है जो एक गलती की है?

क्या किसी को इस समस्या को ठीक पता है? पिछला स्लैश जोड़ने के लिए मैं LinkManager कैसे प्राप्त करूं?

UPDATE यह मेरी सामग्री के पेड़ का एक स्क्रीनशॉट है:

यहां छवि विवरण दर्ज करें

डिफ़ॉल्ट.aspx के बारे में आपको मिलता है यह एक MVC बात संभव है कि आप इसे एक आवेदन को एक global.asax में जोड़कर ठीक कर सकते हैं Application_Start () एक सिस्टम। वेब। रूटिंग। RouteTable.Routes.RouteExistingFiles = true;

  संरक्षित शून्य Application_Start () {System.Web.Routing.RouteTable.Routes.RouteExistingFiles = true; }  

देखें और

मैं आपकी यूआरएल को अपनी इच्छा के अनुसार नहीं बदलता, लेकिन यह डिफ़ॉल्ट व्यवहार है।


No comments:

Post a Comment