asp.net-core - 使用 TreeView 控件在选项卡内进行 Blazor 路由或导航
问题描述
我无法在 Blazor 中实现简单的路由,为了说明该场景,我有一个包含 Tab 控件的选项卡组件,并且在一个选项卡项中我有一个包含 TreeView 控件的 TreeView 组件。现在,当我尝试单击 TreeView 项目时,我会在 @Body 中显示与它相邻的特定项目的相关视图。一切看起来都是连线的,但是当我单击 TreeView 项目时,它会显示视图但同时给我一个错误。
错误:System.InvalidOperationException:“BlazorApp.Pages.TabComponent”类型的对象没有与名称“Body”匹配的属性。
- TabComponent (@page “/tab”) - 包含 Tab 控件
- TreeViewComponent (@page “/tab/treeview”) - 包含 TreeView 控件和 @Body
- @Body (@page "/tab/treeview/view1") 显示选中的TreeView item (View1) 组件
- TreeViewComponent (@page “/tab/treeview”) - 包含 TreeView 控件和 @Body
TabComponent.razor
@page "/tab"
@inherits ComponentBase
<BSTabGroup>
<BSTabList>
<BSTab>
<BSTabLabel>TreeView</BSTabLabel>
<BSTabContent>
<TreeViewComponent></TreeViewComponent>
</BSTabContent>
</BSTab>
</BSTabList>
<BSTabSelectedContent></BSTabSelectedContent>
</BSTabGroup>
TreeViewComponent.razor
@page "/tab/treeview"
@layout TabComponent
@inherits LayoutComponentBase
<div class="container remove-margin">
<div class="row">
<div class="col-md-3">
<TreeView Data="TreeDataSource" NodeSelected="@TreeNodeSelect"></TreeView>
</div>
<div class="col-md-9" style="height: 100%">
<div class="card" style="height: 100%">
<div class="card-header">
@Body
</div>
</div>
</div>
</div>
</div>
@code {
protected void TreeNodeSelect(object args)
{
NavigationManager.NavigateTo("/tab/treeview/view1");
}
}
View1Component.razor
@page "/tab/treeview/view1"
@inherits ComponentBase
@layout TreeViewComponent
<h1>View 1</h1>
我不明白为什么在 TabComponent 级别有一个似乎不必要的 Body 会抱怨。
我怎样才能顺利完成这个简单的路由?
已编辑
Tab 控件来自 Radzen Blazor 库,但 TreeView 控件是我自己定制的。
解决方案
推荐阅读
- ruby-on-rails - Rails 模型关联 - has_one 还是单表继承?
- android - 将脚本添加到 AOSP
- css - 使用 Bulma 为 Vue 中的活动链接设置样式
- javascript - 无法在 JavaScript 上创建滚动效果
- html - 边距右:自动和边距左:自动不工作
- python - 如何将aws glue的python shell连接到oracle数据库
- google-apps-script - Google Apps 脚本幻灯片向形状添加阴影
- git - Git 合并冲突已解决,没有要提交的更改
- remote-desktop - 几次成功连接后无法远程连接到我的电脑?
- python - 神经网络拟合看起来很奇怪