如何在没有项目路径的情况下获取
http://www.mysite.com/en网站主页网址的主要部分?最终,我想将Model.Url附加到
这个:
Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions(); urlOptions.AlwaysIncludeServerUrl = true; url = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item,urlOptions);
给我“http://www.mysite.com/en/undergraduate/business/new-information-landing-pages/Akron-stories”
Model.Url
给我“/本科/商业/新信息 – 登陆页面/阿克伦故事”
var context = new SitecoreContext(); url = context.GetHomeItem<Base_Page>().URL;
给我 ”/”
解决方法
您可以在linkprovider上的web.config中设置参数
<add name="sitecore" type="Sitecore.Links.LinkProvider,Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="Always" languageLocation="filePath" lowercaseUrls="false" shortenUrls="true" useDisplayName="false" />
或者在UrlOption上设置它
Sitecore.Links.UrlOptions urlOptions = UrlOptions.DefaultOptions; urlOptions.LanguageEmbedding = LanguageEmbedding.Always; // Fetch the start item from Site definition var startItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.ContentStartPath); var url = Sitecore.Links.LinkManager.GetItemUrl(startItem,urlOptions);
还始终使用UrlOptions.DefaultOptions从linkmanager选项复制当前设置