都是在@rendermode InteractiveServer下
通过路由传递参数:
传出页面:
<a href="@($"/{i}")">
@code{
private int i;
}
传入页面:
@page "/{Id:int}"
<p>@Id</p>
@code{
[Parameter]
public int Id { get; set; }
}
值得一提的是,设置了带有参数的路由后,就必须送出参数,不然会返回404;但也可以设置可选参数,只需要在传入页面上写:
@page "/{Id:int?}"
@code{
[Parameter]
public int? Id { get; set; }
}
这样参数就成为可选的,可以根据情况决定是否送出参数。
在路由中还可以增加查询参数(Query String)来送出字符串参数
只要在路由后面附上:
<a href="@($"/{i}?name=Alex)">
在传入页面添加:
[SupplyParameterFromQuery]
public string? Name{set;get;}
就可以把值“Alex”传送到Name,传入页面的Name和传出路由中的name,只要保持字面一致就可以,大小写可以不同。且可以传递多个参数,只要在路由中用&分割,在传入页面中按顺序设置多个属性就可以了。Query String参数都是可选的,所以在属性定义中需要加上一个?号