【发布时间】:2020-04-14 08:04:37
【问题描述】:
我正在使用 dotnetcore 2.2 和 Razor 页面启动一个新应用程序。我想“组件化”布局文件的导航栏部分,显示用户名,并根据登录者隐藏/显示菜单项。最好的方法是什么?我尝试了部分,但似乎无法使其工作。 有什么建议吗?
【问题讨论】:
标签: .net-core razor-pages
我正在使用 dotnetcore 2.2 和 Razor 页面启动一个新应用程序。我想“组件化”布局文件的导航栏部分,显示用户名,并根据登录者隐藏/显示菜单项。最好的方法是什么?我尝试了部分,但似乎无法使其工作。 有什么建议吗?
【问题讨论】:
标签: .net-core razor-pages
视图组件是您所描述内容的不错选择:
默认.cshtml:
@model NvarBarModel
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
// ...
<div class="collapse navbar-collapse" id="navbarSupportedContent">
// ...
</div>
</nav>
NavBarViewComponent.cs
public class NavBarViewComponent() : ViewComponent
{
public IViewComponentResult Invoke()
{
return View(new NavBarModel());
}
}
在你的布局页面中:
@await Component.InvokeAsync("NavBar")
您也可以使用标签助手调用组件,但我上次尝试有一个错误(功能?)要求视图组件构造函数中的每个参数都包含在助手中,否则它根本没有呈现。
【讨论】: