【发布时间】:2021-07-22 17:14:20
【问题描述】:
我正在解决面包屑导航和动态显示的问题(我想避免在每个剃须刀组件(页面之一)中都有静态数据。谢谢转发。
问题:如何获取 @Body 组件的路径? 在正文中当然是(项目中的默认文件夹名称)页面之一。所以“body本身”的第1行是@page“/somePage”...
我的(缩短的)布局:
<div class="page">
<div class="main">
<div class="top-row TitleButtonList @((closedLeftBar) ? "TitleButtonListClose" : "") ">
<TitleButton />
</div>
<div class="top-row">
<BreadcrumbNav breadCrumbData="breadCrumbDatas"></BreadcrumbNav>
<p>Error test name: @path</p>
</div>
<div class="content px-4 @((closedLeftBar) ? "contentClose col-md-10" : "contentOpen col-md-9")">
@Body
<FOLButtons />
</div>
</div>
</div>
@code {
public List<BreadCrumbData> breadCrumbDatas;
string path = string.Empty;
protected override void OnInitialized()
{
breadCrumbDatas = breadCrumbService.GetProperList();
path = ??????
}
}
面包屑的型号:
public class BreadCrumbData
{
[Required]
public string Text { get; set; }
[Required]
public string URL { get; set; }
[Required]
public int Level { get; set; }
[Required]
#nullable enable
public string? ParentURL { get; set; }
public BreadCrumbData(string text, string url, int level, string parentURL)
{
Text = text;
URL = url;
Level = level;
ParentURL = parentURL;
}
}
面包屑组件(布局中的那个)
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
@if (breadCrumbData != null)
{
@foreach (var item in breadCrumbData)
{
@if (item == breadCrumbData.Last())
{
<li class="breadcrumb-item active" aria-current="page">@item.Text</li>
}
else
{
<li class="breadcrumb-item"><a href="@item.URL">@item.Text</a></li>
}
}
}
</ol>
</nav>
@code {
[Parameter]
public List<BreadCrumbData> breadCrumbData { get; set; }
}
【问题讨论】:
-
为什么在
ParentURL上启用可为空?字符串已经可以为空。 -
这很简单——因为我写的时候并没有意识到。当然这是正常工作(此时:))
标签: c# blazor blazor-webassembly