C# Blazor 如何在URL中指定字符串参数并绑定到页面属性?
Blazor URL参数传递实现方案
你现有代码存在两处问题:
- 渲染用的
<p>标签属于页面UI内容,不能放在@code代码块内部 - 没有声明带参数的路由模板,Blazor无法将URL路径中的值和你定义的参数做绑定
正确实现步骤
- 首先在页面顶部添加带参数的路由声明,参数部分用大括号包裹,参数名要和你后续定义的Parameter属性名完全一致:
// 必传参数写法 @page "/passParameter/{urlParameter}" // 如果要支持参数可选,加问号后缀即可 @page "/passParameter/{urlParameter?}"
- 把UI渲染内容移到
@code块外,完整代码示例:
@page "/passParameter/{urlParameter}" <p>@urlParameter</p> @code { [Parameter] public string urlParameter { get; set; } }
以上代码部署后,访问https://localhost:5001/passParameter/thisIsAString 页面就会正常显示thisIsAString。
如果需要传递数值类型的参数,还可以在路由模板中指定参数类型做校验:
// 仅当路径参数为整数时才会匹配该路由 @page "/passParameter/{id:int}"
内容的提问来源于stack exchange,提问作者Ronakße
相关产品推荐
相关产品推荐

