@using EventHub.Web @using Microsoft.Extensions.Localization @using Volo.Abp.Users @using EventHub.Localization @using Microsoft.AspNetCore.Http.Extensions @using Microsoft.Extensions.Options @using Volo.Abp.Localization @inject ICurrentUser CurrentUser @inject ILanguageProvider LanguageProvider @inject IStringLocalizer L @inject IOptions UrlOptions @{ var returnUrl = System.Net.WebUtility.UrlEncode(Context.Request.GetEncodedPathAndQuery()); if (returnUrl.IsNullOrWhiteSpace()) { returnUrl = "/"; } } @functions{ public string GetPageActiveClassOrEmpty(ViewContext viewContext, string pageUrl) { if (!UrlOptions.Value.Www.Contains(Context.Request.Host.ToString())) { return ""; } var activeRoute = viewContext?.RouteData.Values["page"]?.ToString()?.ToLowerInvariant(); pageUrl = pageUrl.ToLowerInvariant(); if (activeRoute is null) { return ""; } switch (pageUrl) { case "/index" when activeRoute == "/index": return activeRoute == pageUrl ? "active" : activeRoute; case "/index": return ""; } pageUrl = pageUrl.Replace("/index", ""); var highLevelActiveRoute = GetHighLevelRoute(activeRoute); // "/organizations/ng-coders" => "organizations" return highLevelActiveRoute.Contains(pageUrl) ? "active" : highLevelActiveRoute; } private string GetHighLevelRoute(string route) { route.EnsureStartsWith('/'); return route.Split("/")[1].EnsureStartsWith('/').EnsureEndsWith('/'); } }