当我NavLink
在 Blazor 服务器应用程序中使用 a 时,它会呈现为<a>
. 我想得到一个包含它的列表项,例如<li><a>
.
我还想尽可能地利用NavLink
(例如跟踪活动网址)的默认行为。
我尝试了一些简单的东西,比如
public class ListItemNavLink : NavLink
{
public string? ListItemCssClass { get; set; }
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, "li");
builder.AddAttribute(1, "class", ListItemCssClass);
builder.OpenElement(2, "a");
builder.AddMultipleAttributes(3, AdditionalAttributes);
builder.AddAttribute(4, "class", CssClass);
builder.AddContent(5, ChildContent);
builder.CloseElement();
builder.CloseElement();
}
}
但是,当我尝试这个
<ListItemNavLink ListItemCssClass="sidebar-item" class="sidebar-link" href="x">
我明白了。
<li><a listitemcssclass="sidebar-item" href="x" class="sidebar-link">
这不正是我想要的。我想得到这样的东西(请注意应用的 ACTIVE 类状态):
<li class="sitebar-item active">
<a class="sidebar-link">Some Text</a>
</li>
有什么提示吗?谢谢