本文整理汇总了C#中IContentLoader.Get方法的典型用法代码示例。如果您正苦于以下问题:C# IContentLoader.Get方法的具体用法?C# IContentLoader.Get怎么用?C# IContentLoader.Get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IContentLoader
的用法示例。
在下文中一共展示了IContentLoader.Get方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RenderBreadCrumb
public static void RenderBreadCrumb(this HtmlHelper html, ContentReference contentLink = null,
IContentLoader contentLoader = null)
{
contentLink = contentLink ?? html.ViewContext.RequestContext.GetContentLink();
contentLoader = contentLoader ?? ServiceLocator.Current.GetInstance<IContentLoader>();
var pagePath = NavigationPath(contentLink, contentLoader);
var path = FilterForVisitor.Filter(pagePath).OfType<PageData>().Select(x => x.PageLink);
if (!path.Any())
{
}
var writer = html.ViewContext.Writer;
writer.WriteLine("<ol class=\"breadcrumb\">");
foreach (var part in path)
{
if (part.CompareToIgnoreWorkID(contentLink))
{
writer.WriteLine("<li class=\"active\">");
var currentPage = contentLoader.Get<PageData>(contentLink);
writer.WriteLine(html.Encode(currentPage.PageName));
}
else
{
writer.WriteLine("<li>");
writer.WriteLine(html.PageLink(part));
}
writer.WriteLine("</li>");
}
writer.WriteLine("</ol>");
}
示例2: NavigationPath
private static IEnumerable<PageData> NavigationPath(ContentReference contentLink, IContentLoader contentLoader,
ContentReference fromLink = null)
{
fromLink = fromLink ?? ContentReference.RootPage;
var path =
contentLoader.GetAncestors(contentLink)
.Reverse()
.SkipWhile(x => ContentReference.IsNullOrEmpty(x.ParentLink) ||
!x.ParentLink.CompareToIgnoreWorkID(ContentReference.StartPage))
.OfType<PageData>()
.ToList();
var currentPage = contentLoader.Get<IContent>(contentLink) as PageData;
if (currentPage != null)
{
path.Add(currentPage);
}
return path;
}
示例3: RenderSubNavigation
public static void RenderSubNavigation(this HtmlHelper html, ContentReference contentLink = null,
IContentLoader contentLoader = null)
{
contentLink = contentLink ?? html.ViewContext.RequestContext.GetContentLink();
contentLoader = contentLoader ?? ServiceLocator.Current.GetInstance<IContentLoader>();
//hitta alla sidor mellan nuvarande sida och start, uppifrån ner
var path =
NavigationPath(contentLink, contentLoader, ContentReference.StartPage).Select(x => x.PageLink).ToList();
//
var currentPage = contentLoader.Get<IContent>(contentLink) as PageData;
if (currentPage != null)
{
path.Add(currentPage.PageLink);
}
var root = path.FirstOrDefault();
if (root == null)
{
return;
}
RenderSubNavigationLevel(html, root, path, contentLoader);
}
示例4: RenderBreadcrumb
public static void RenderBreadcrumb(
this HtmlHelper html,
ContentReference contentLink = null,
IContentLoader contentLoader = null)
{
contentLink = contentLink ??
html.ViewContext.RequestContext.GetContentLink();
contentLoader = contentLoader ??
ServiceLocator.Current.GetInstance<IContentLoader>();
var pagePath = NavigationPath(contentLink, contentLoader);
var path = FilterForVisitor.Filter(pagePath)
.OfType<PageData>()
.Select(x => x.PageLink);
if (!path.Any())
{
//Nothing to render, no need to output an empty list.
return;
}
var writer = html.ViewContext.Writer;
writer.WriteLine("<ol class=\"breadcrumb\">");
foreach (var part in path)
{
if (part.CompareToIgnoreWorkID(contentLink))
{
writer.WriteLine("<li class=\"active\">");
//For the current page there's no point in outputting a link.
//Instead output just the (encoded) page name.
var currentPage = contentLoader.Get<PageData>(contentLink);
writer.WriteLine(html.Encode(currentPage.PageName));
}
else
{
writer.WriteLine("<li>");
writer.WriteLine(html.PageLink(part));
}
writer.WriteLine("</li>");
}
writer.WriteLine("</ol>");
}
示例5: NavigationPath
private static IEnumerable<PageData> NavigationPath(
ContentReference contentLink,
IContentLoader contentLoader,
ContentReference fromLink = null)
{
fromLink = fromLink ?? ContentReference.RootPage;
//Find all pages between the current and the
//"from" page, in top-down order.
var path = contentLoader.GetAncestors(contentLink)
.Reverse()
.SkipWhile(x =>
ContentReference.IsNullOrEmpty(x.ParentLink)
|| !x.ParentLink.CompareToIgnoreWorkID(fromLink))
.OfType<PageData>()
.ToList();
//In theory the current content may not be a page.
//We check that and, if it is, add it to the end of
//the content tree path.
var currentPage = contentLoader
.Get<IContent>(contentLink) as PageData;
if (currentPage != null)
{
path.Add(currentPage);
}
return path;
}
示例6: SetAdditionalContextValuesForContent
private static void SetAdditionalContextValuesForContent(this UrlHelper urlHelper, PageReference pageLink, RouteValueDictionary values, IContentLoader contentQueryable, IPermanentLinkMapper permanentLinkMapper, LanguageSelectorFactory languageSelectorFactory)
{
bool IdKeep = HttpContext.Current.Request.QueryString["idkeep"] != null;
contentQueryable = contentQueryable ?? ServiceLocator.Current.GetInstance<IContentLoader>();
permanentLinkMapper = permanentLinkMapper ?? ServiceLocator.Current.GetInstance<IPermanentLinkMapper>();
languageSelectorFactory = languageSelectorFactory ?? ServiceLocator.Current.GetInstance<LanguageSelectorFactory>();
IContent content = contentQueryable.Get<IContent>(pageLink, languageSelectorFactory.Fallback(values[RoutingConstants.LanguageKey] as string ?? ContentLanguage.PreferredCulture.Name, true));
if (content == null)
return;
if (IdKeep)
values["id"] = (object)content.ContentLink.ToString();
UrlExtensions.SetAdditionalContextValuesForPage(values, IdKeep, content);
}