Blazor:如何动态更改URL?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Blazor:如何动态更改URL?相关的知识,希望对你有一定的参考价值。

我有一个页面,该页面将字符串bookingReference作为其路由参数Booking/{bookingReference}

此页面是父级组件,内部是子级组件,用于管理预订详细信息。预订详细信息更新时,子级组件将回调父级。

@page "/Operations/Bookings/{bookingReference}"


<div class="header">
   <h1> @Booking.BookingReference </h1>
</div>

<div>
   <BookingDetails Booking="Booking" OnUpdateBooking="UpdateBooking" />
</div>


@code {

    [Parameter]
    public string BookingReference { get; set; }    

    private Booking Booking { get; set; }

    void UpdateBooking(Booking booking)
    {
        Booking = booking;
        StateHasChanged();
    }
}

用户可以从子组件更新预订参考,因此,可以更改页面的页眉-很好,很好。

但是,我也想将URL更改为更新的bookingReference-在不强制刷新的情况下,有什么方法可以实现?

我有一个页面,该页面将字符串bookingReference作为其路由参数Booking / {bookingReference}。该页面是父级组件,子级组件在其中,预订详细信息是...

答案

[如果通过“强制刷新”表示重新加载页面,则答案为肯定。您不必重新加载页面,但是必须重新渲染页面才能刷新视图(不是重新加载而是重新渲染)。重新加载页面时,将重新创建页面组件和嵌入式组件。当您重新呈现页面时,页面组件和嵌入式组件不会被破坏,并且仅应用html diff来反映这一点。

以上是关于Blazor:如何动态更改URL?的主要内容,如果未能解决你的问题,请参考以下文章

使用 IIS URL 重写动态设置 Blazor WASM 基本 href

属性值更改时如何通知 Blazor Framework

在 Blazor 中引用动态创建的控件

当 url 响应状态代码为 400 时如何使用 C# .Net Core 5 Blazor 服务器端应用程序中的中间件重定向到主页

在 Blazor (.razor) 组件中添加多个组件

如何通过动态单击按钮来更改选项卡标题名称?