Blazor报错:名称‘Acti’在当前上下文中不存在
错误原因排查
核心问题:页面未声明路由参数对应的属性
你在ClientEditForm.Razor页面的路由中定义了{Acti}参数,但页面本身没有声明对应的Acti属性,导致在页面内使用@Acti时,当前上下文找不到该名称。
你在代码后置中声明的Acti参数属于ClientEditFormComponent子组件,和页面的路由参数是两个独立的对象,页面无法直接引用子组件的参数来接收路由值。
修复步骤
- 在
ClientEditForm页面的代码部分(可以是页面内的@code块,也可以是对应的代码后置文件,比如ClientEditForm.razor.cs)中,添加路由参数的声明:
[Parameter] public string? Acti { get; set; }
- 确保页面传递给子组件的
@Acti是页面自身的参数,此时页面已经从路由中获取到该值,就能正常传递给ClientEditFormComponent。
额外注意点
- 路由参数名称和代码中的属性名尽量保持一致(Blazor支持大小写不敏感映射,但一致的命名能避免不必要的问题)。
- 如果
Acti是必填参数,建议去掉?,并确保路由规则能正确匹配非空值。
内容的提问来源于stack exchange,提问作者user3552264
相关产品推荐
相关产品推荐

