我想拥有一个具有特定状态的Blazor组件。在交互时,应该打开一个新窗口,并且应该向新窗口和组件引入一个参数。
@page "/"
@inject IJSRuntime JSRuntime;
<input type="text" @bind-value=SomeWords />
<input type="button" value="Change" @onclick="@(async () => await JSRuntime.InvokeAsync<Counter>("open", "/"))" />
@code {
[Parameter]
public string SomeWords {get; set;}
public void Changeword()
{
SomeWords = "The New Page";
}
}
然后使用
<Counter SomeWords="First Page"></Counter>
当应用打开时,它会显示,"第一页。"当点击该按钮时,同一页面的新窗口将打开,并显示"新页面",";"旧的那一页上还写着"第一页"。我想在WebAssembly中做到这一点,但如果不可能的话,作为服务器解决方案仍将受到赞赏。谢谢。
一个页面可以使用多个路由
@page "/"
@page "/{title}"
@inject IJSRuntime JSRuntime;
<input type="text" @bind-value=SomeWords />
<input type="button" value="Change" @onclick="@(async () => await JSRuntime.InvokeAsync<Counter>("open", $"/{SomeWords}"))" />
@code {
[Parameter]
public string title { get; set; }
[Parameter]
public string SomeWords { get; set; } = "First Page";
protected override void OnParametersSet()
{
if (!string.IsNullOrEmpty(title))
SomeWords = title;
}
}