dotnet core 2.2布局页面和组件
dotnet core 2.2 layout page and components
我正在使用 dotnetcore 2.2 和 Razor 页面启动一个新应用。我想 'componentize' 布局文件的导航栏部分,以显示用户名,以及 hide/show 基于登录用户的菜单项。最好的方法是什么?我试过部分,但似乎无法让它工作。
有什么建议吗?
对于您所描述的内容,视图组件是一个不错的选择:
Default.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")
您也可以使用标签助手调用组件,但我最后尝试时出现了一个错误(功能?),要求视图组件构造函数中的每个参数都包含在助手中,否则它根本不会呈现。
我正在使用 dotnetcore 2.2 和 Razor 页面启动一个新应用。我想 'componentize' 布局文件的导航栏部分,以显示用户名,以及 hide/show 基于登录用户的菜单项。最好的方法是什么?我试过部分,但似乎无法让它工作。 有什么建议吗?
对于您所描述的内容,视图组件是一个不错的选择:
Default.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")
您也可以使用标签助手调用组件,但我最后尝试时出现了一个错误(功能?),要求视图组件构造函数中的每个参数都包含在助手中,否则它根本不会呈现。