前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Blazor-处理URL中查询参数

Blazor-处理URL中查询参数

作者头像
MaybeHC
发布2025-03-25 13:31:38
发布2025-03-25 13:31:38
3600
代码可运行
举报
文章被收录于专栏:技术之路技术之路
运行总次数:0
代码可运行

本次主要来说下通过对当前URL进行,添加、更改或删除一个或多个查询参数的U R L 字符串的方法。

添加查询参数

代码语言:javascript
代码运行次数:0
运行
复制
@page "/demoPage"
@inject NavigationManager NavigationManager
<h3>demoPage</h3>
<h2>路由查询参数:</h2>
<p>添加参数: @_newUrl</p>
<button @onclick="GetUrlQuery">更新参数</button>
@code {
    private string _newUrl = string.Empty;
    private void GetUrlQuery()
    {
        // 添加参数
        _newUrl = NavigationManager.GetUriWithQueryParameter("a", "123");
    }
}

上述代码中执行了NavigationManager.GetUriWithQueryParameter,为url添加了查询参数a,并设置值为123,如果设置的查询参数原本是存在的将更新原来的值,下来我们试试更新看看是否有效

更新查询参数

代码语言:javascript
代码运行次数:0
运行
复制
@page "/demoPage"
@inject NavigationManager NavigationManager
<h3>demoPage</h3>
<h2>路由查询参数:</h2>
<p>添加参数: @_newUrl</p>
<button @onclick="GetUrlQuery">更新参数</button>
@code {
    private string _newUrl = string.Empty;
    private void GetUrlQuery()
    {
        // 添加参数
        _newUrl = NavigationManager.GetUriWithQueryParameter("a", "123");
    }
}

这次我们还是使用了上述的代码,和添加一样,只是这次调用时我们就传递了查询参数a=abc,可以看到如下的结果,a被更新为123,证明更新查询参数生效。

删除查询参数

删除查询参数时我们只需要根据原有类型设置为null

代码语言:javascript
代码运行次数:0
运行
复制
@page "/demoPage"
@inject NavigationManager NavigationManager
<h3>demoPage</h3>
<h2>路由查询参数:</h2>
<p>添加参数: @_newUrl</p>
<button @onclick="GetUrlQuery">更新参数</button>
@code {
    private string _newUrl = string.Empty;
    private void GetUrlQuery()
    {
        // 添加参数
        _newUrl = NavigationManager.GetUriWithQueryParameter("a", (string)null!);
    }
}

我们运行后点击按钮可以看到值被正确删除了

操作多参数

操作多参数我们使用GetUriWithQueryParameters(),传入一个字典来更新值。 这里我们做一个这样的预期,修改a参数为123,添加b参数,删除c参数

代码语言:javascript
代码运行次数:0
运行
复制
@page "/demoPage"
@inject NavigationManager NavigationManager
<h3>demoPage</h3>
<h2>路由查询参数:</h2>
<p>添加参数: @_newUrl</p>
<button @onclick="GetUrlQuery">更新参数</button>
@code {
    private string _newUrl = string.Empty;
    private void GetUrlQuery()
    {
        // 添加参数
        _newUrl = NavigationManager.GetUriWithQueryParameters(new Dictionary<string, object?>()
        {
            ["a"] = "123",
            ["b"] = 18,
            ["c"] = null
        });
    }
}

运行后是与我们的预期一致

使用非当前的url

代码语言:javascript
代码运行次数:0
运行
复制
@page "/demoPage"
@inject NavigationManager NavigationManager
<h3>demoPage</h3>
<h2>路由查询参数:</h2>
<p>添加参数: @_newUrl</p>
<button @onclick="GetUrlQuery">更新参数</button>
@code {
    private string _newUrl = string.Empty;
    private void GetUrlQuery()
    {
        // 添加参数
        _newUrl = NavigationManager.GetUriWithQueryParameters("https://baidu.com", new Dictionary<string, object?>()
        {
            ["a"] = "123",
            ["b"] = 18,
            ["c"] = null
        });
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 添加查询参数
  • 更新查询参数
  • 删除查询参数
  • 操作多参数
  • 使用非当前的url
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档