39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.AspNetCore.WebUtilities;
|
|
|
|
namespace MP.Land.Extensions
|
|
{
|
|
public static class NavigationManagerExtension
|
|
{
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Estensione metodo NavigationManager
|
|
///
|
|
/// https://code-maze.com/query-strings-blazor-webassembly/
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="navManager"></param>
|
|
/// <param name="key"></param>
|
|
/// <returns></returns>
|
|
public static T ExtractQueryStringByKey<T>(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;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |