首页 > 其他分享 >.net maui blazor路由和导航,传参,刷新

.net maui blazor路由和导航,传参,刷新

时间:2024-04-09 10:58:00浏览次数:18  
标签:传参 int Text 表单 maui net 导航 Id 路由

.net maui blazor路由和导航,传参,刷新
参考:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-8.0
页面:TestPage1.razor:
@page "/test1/{Text}"
<p>必填参数:@Text</p>
@code {
[Parameter]
public string? Text { get; set; }
}

可选参数@page "/test1/{Text?}"
给参数设置默认值
protected override void OnParametersSet()
{
Text = Text ?? "fantastic";
}
使用 OnInitialized{Async} 方法而不是 OnParametersSet 方法时,如果用户在同一组件内导航,则不会发生属性 Text 向 fantastic 的默认分配。
例如,当用户从 /route-parameter-2/amazing 导航到 /route-parameter-2 时,就会出现这种情况。
随着组件实例持久保存并接受新参数,便不会再次调用 OnInitialized 方法。

路由约束
路由约束强制在路由段和组件之间进行类型匹配。
在以下示例中,到 User 组件的路由仅在以下情况下匹配:
请求 URL 中存在 Id 路由段。
Id 段是一个整数 (int) 类型。
@page "/user/{Id:int}"
<p>User Id: @Id</p>
@code {
[Parameter]
public int Id { get; set; }
}

约束,示例,匹配项示例,固定条件区域性匹配
bool {active:bool} true,FALSE 否
datetime {dob:datetime} 2016-12-31,2016-12-31 7:32pm 是
decimal {price:decimal} 49.99,-1,000.01 是
double {weight:double} 1.234,-1,001.01e8 是
float {weight:float} 1.234,-1,001.01e8 是
guid {id:guid} CD2C1638-1638-72D5-1638-DEADBEEF1638,{CD2C1638-1638-72D5-1638-DEADBEEF1638} 否
int {id:int} 123456789,-123456789 是
long {ticks:long} 123456789,-123456789 是

//刷新页面
可以通过调用 NavigationManager.Refresh(bool forceLoad = false) 来刷新当前页,它会始终执行增强型导航(如果可用)。 如果增强型导航不可用,Blazor 将执行整页重载。
默认启用增强型导航,但可使用 data-enhance-nav HTML 属性按每个链接进行分层控制。
以下示例禁用增强型导航:
<a href="redirect" data-enhance-nav="false">
GET without enhanced navigation
</a>
<ul data-enhance-nav="false">
<li>
<a href="redirect">GET without enhanced navigation</a>
</li>
<li>
<a href="redirect-2">GET without enhanced navigation</a>
</li>
</ul>
若要启用增强的表单处理,请将 Enhance 参数添加到 EditForm 表单或将 data-enhance 属性添加到 HTML 表单(<form>)
增强的表单处理不是分层的,也不会传输到子表单。
不支持:无法在上级元素上设置增强型导航来为表单启用增强型导航。

查询字符串
使用 [SupplyParameterFromQuery] 属性指定组件参数来自查询字符串。
查询字符串提供的组件参数支持以下类型:
bool,DateTime,decimal,double,float,Guid,int,long,string。
上述类型的可为空变体。
上述类型的数组,无论它们是可为空还是不可为空。
正确的区域性固定格式设置适用于给定类型 (CultureInfo.InvariantCulture)。

指定 [SupplyParameterFromQuery] 属性的 Name 属性以使用不同于组件参数名称的查询参数名称。
在使用 /search?filter=scifi%20stars&page=3&star=LeVar%20Burton&star=Gary%20Oldman URL 的以下示例中:
Filter 属性解析为 scifi stars。
Page 属性解析为 3。
Stars 数组是从名为 star (Name = "star") 的查询参数填充的,并解析为 LeVar Burton 和 Gary Oldman。
@code {
[SupplyParameterFromQuery]
public string? Filter { get; set; }

[SupplyParameterFromQuery]
public int? Page { get; set; }

[SupplyParameterFromQuery(Name = "star")]
public string[]? Stars { get; set; }
}

标签:传参,int,Text,表单,maui,net,导航,Id,路由
From: https://www.cnblogs.com/xsj1989/p/18123390

相关文章