using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.WebUtilities; namespace MP.SPEC.Extensions { public static class NavigationManagerExtension { #region Public Methods /// /// Estensione metodo NavigationManager x recupero querystring /// /// https://code-maze.com/query-strings-blazor-webassembly/ /// /// /// /// /// public static T ExtractQueryStringByKey(this NavigationManager navManager, string key) { var uri = navManager.ToAbsoluteUri(navManager.Uri); QueryHelpers.ParseQuery(uri.Query) .TryGetValue(key, out var queryValue); if (typeof(T).Equals(typeof(int))) { int.TryParse(queryValue, out int result); return (T)(object)result; } if (typeof(T).Equals(typeof(string))) return (T)(object)queryValue.ToString(); return default; } /// /// Recupero base page /// /// https://stackoverflow.com/questions/50102726/navigationmanager-get-current-url-in-a-blazor-component /// /// /// public static string Page(this NavigationManager navigation) { return navigation.Uri.Substring(navigation.BaseUri.Length); } #endregion Public Methods } }