我如何获得Sitecore的主页?

Faw*_*awn 6 c# asp.net sitecore

如何在没有项目路径的情况下获取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);
Run Code Online (Sandbox Code Playgroud)

给我" http://www.mysite.com/en/undergraduate/business/new-information-landing-pages/Akron-stories "

Model.Url
Run Code Online (Sandbox Code Playgroud)

给我"/本科/商业/新信息 - 登陆页面/阿克伦故事"

var context = new SitecoreContext();
url = context.GetHomeItem<Base_Page>().URL;
Run Code Online (Sandbox Code Playgroud)

给我 "/"

dun*_*ton 13

您可以在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" />
Run Code Online (Sandbox Code Playgroud)

或者在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);
Run Code Online (Sandbox Code Playgroud)

也始终用于UrlOptions.DefaultOptions从linkmanager选项复制当前设置