Ich verwende die DotLiquid-Vorlagen-Engine, um Themes in einer Anwendung zu ermöglichen.Zugriff auf Auflistungseigenschaften innerhalb von Dot Liquid
Innerhalb, habe ich eine paginierte Liste, die von List erbt, die als ein sicherer Typ registriert ist und den Zugriff auf die Mitglieder erlaubt. Die PaginatedList kommt von einer höheren Stufe in der Anwendung und ist unwissend dafür, dass Dot Liquid verwendet wird, daher die Verwendung von RegisterSafeType anstelle von Drop.
Template.RegisterSafeType(typeof(PaginatedList<>), new string[] {
"CurrentPage",
"HasNextPage",
"HasPreviousPage",
"PageSize",
"TotalCount",
"TotalPages"
});
public class PaginatedList<T> : List<T>
{
/// <summary>
/// Returns a value representing the current page being viewed
/// </summary>
public int CurrentPage { get; private set; }
/// <summary>
/// Returns a value representing the number of items being viewed per page
/// </summary>
public int PageSize { get; private set; }
/// <summary>
/// Returns a value representing the total number of items that can be viewed across the paging
/// </summary>
public int TotalCount { get; private set; }
/// <summary>
/// Returns a value representing the total number of viewable pages
/// </summary>
public int TotalPages { get; private set; }
/// <summary>
/// Creates a new list object that allows datasets to be seperated into pages
/// </summary>
public PaginatedList(IQueryable<T> source, int currentPage = 1, int pageSize = 15)
{
CurrentPage = currentPage;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount/(double)PageSize);
AddRange(source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList());
}
/// <summary>
/// Returns a value representing if the current collection has a previous page
/// </summary>
public bool HasPreviousPage
{
get
{
return (CurrentPage > 1);
}
}
/// <summary>
/// Returns a value representing if the current collection has a next page
/// </summary>
public bool HasNextPage
{
get
{
return (CurrentPage < TotalPages);
}
}
}
Diese Liste wird dann in local.Products die Ansicht ausgesetzt, arbeitet die Sammlung in Dot Flüssigkeit Iterieren in Ordnung.
Ich versuche jedoch, Zugriff auf die Eigenschaften zu erhalten, ich bekomme keine Fehler, aber keine Werte werden durch Dot Liquid ersetzt.
Ich bin mit
{{ local.Products.CurrentPage }} |
die mit
|
jedermann sehen kann, wo ich falsch werde ersetzt wird?
Danke Tim, es scheint, dass dies der Fall ist. – EverythingGeek