@{
var nav = Model.Value<IEnumerable<UmbNavItem>>("navigation");
if (nav == null)
{
<p>Navigation is null</p>
}
else if (!nav.Any())
{
<p>Navigation is empty</p>
}
}
@inject IUmbNavMenuBuilderService MenuBuilder
@{
var rawItems = Model.Value<IEnumerable<UmbNavItem>>("navigation");
var menu = MenuBuilder.BuildMenu(rawItems, UmbNavBuildOptions.Default);
}
@foreach (var item in menu)
{
@if (item.Content == null && item.ItemType == UmbNavItemType.Document)
{
<text>Content not found for: @item.Name</text>
}
}
public class MyComposer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.Services.AddUnique<IUmbNavMenuBuilderService, MyMenuBuilderService>();
}
}
[ComposeAfter(typeof(RegisterUmbNavServicesComposer))]
public class MyComposer : IComposer
var options = new UmbNavBuildOptions { MaxDepth = 3 };
var menu = MenuBuilder.BuildMenu(rawItems, options);
var cacheKey = $"menu_{Model.Key}";
var menu = _cache.GetOrCreate(cacheKey, entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5);
return MenuBuilder.BuildMenu(rawItems, options);
});
var options = new UmbNavBuildOptions
{
RemoveDescription = true,
RemoveImages = true,
RemoveCustomClasses = true
};