Get URL - different language
I have one custom language selector control and i'm trying to obtain the URL of my current page in all avaiable languages (in my site i have configurated the default language PT and other avaialbe is EN):
........................
SiteMapNode currentNode = SiteMapBase.GetCurrentProvider().CurrentNode;
pagen = pm.GetPageNode( new Guid(currentNode.Key));
..................
void LanguagesRepeater_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
CultureInfo ci = (System.Globalization.CultureInfo)e.Item.DataItem;
if (ci != null)
..............................................
if (pagen != null)
if (pagen.AvailableLanguages.Contains(ci.Name))
lk.HRef = pagen.GetUrl(ci);
else
lk.HRef = homePageNode.GetUrl(ci);
else
lk.HRef = homePageNode.GetUrl(ci);
The problem is that pagen.GetUrl(ci) returns allways the URL to the default language in pages that i have the english version ( never returns url of the type ~/en/home ).
What am i doing wrong ?
Hi JV,
You have to resolve the url depending on the culture
string
url =
null
;
UrlLocalizationService service =
new
UrlLocalizationService();
url = service.ResolvePageUrl(node, culture);