首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同页面中的Blazor路由更改

相同页面中的Blazor路由更改
EN

Stack Overflow用户
提问于 2019-07-03 11:51:44
回答 1查看 2.9K关注 0票数 9

我是目前的设置:

  • .NET核心3(预览6)
  • Blazor服务器端呈现

在Blazor页面中,我有如下内容:

代码语言:javascript
复制
@page "/page"
@page "/page/{Id}"

通过以下方式:

代码语言:javascript
复制
[Parameter]
public string Id { get; set; }

现在,当从/page/1导航到/page/2时,我可以使用OnParametersSetAsync来检测这些更改。但是在从/page/1导航到/page时会出现问题。OnParametersSetAsync可以检测到此更改,但是Id参数将保持与前一个路由相同的1

我在想在这种情况下我能做些什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-03 12:19:08

Blazor不使用null覆盖空参数,请自己执行:

代码语言:javascript
复制
@page "/Counter"
@page "/Counter/{Id}"
<h1>Current Id: @IdString;</h1>
<a href="/Counter"> go home </a> |
<a href="/Counter/1"> go home 1 </a> |
<a href="/Counter/2"> go home 2 </a>

@code
{
    private string IdString;
    [Parameter] public string Id { get; set; }

    protected override async Task OnParametersSetAsync()
    {
        // copy par value somewhere
        IdString = Id?.ToString() ?? "";

        // rest parm (set to null) by yourself
        Id=null;  
    }
}

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56869508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档