我正在尝试在 Blazor 应用程序中制作一个简单的下拉菜单。在 my 中声明Header.razor如下:
<div class="header-sign">
<div class="dropdown" id="toggleDropdown">
<button class="button-md" type="button">
<i data-feather="user"></i>
<span>Personal cab</span>
</button>
<ul class="dropdown-list">
<li class="dropdown-item">
<a class="dropdown-link" href="">
<p class="text-md">Cabinet</p>
</a>
</li>
<li class="dropdown-item">
<a class="dropdown-link" href="">
<p class="text-md">Sign out</p>
</a>
</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
下拉菜单可以通过 JS 脚本触发,如下所示:
$("#toggleDropdown").on("mouseenter", () => {
$(this).find(".dropdown-list").addClass("is-active");
});
Run Code Online (Sandbox Code Playgroud)
我的标头声明MainLayout.razor如下:
@inherits LayoutComponentBase
<Header></Header>
<main class="main">
@Body
</main>
<Footer></Footer>
Run Code Online (Sandbox Code Playgroud)
而这种方法行不通。
如果我用完全相同的标记替换上述的Header.razorrazor 页面并以这种方式呈现它,一切都会改变:Header.cshtml_Layout.cshtml
@await Html.PartialAsync("Header")
Run Code Online (Sandbox Code Playgroud)
看起来上面的标记只能在*.cshtml文件中工作,但不能在文件中工作*.razor,我不明白原因。为什么它会这样?