【问题标题】:dotnet core 2.2 layout page and componentsdotnet core 2.2 布局页面和组件
【发布时间】:2020-04-14 08:04:37
【问题描述】:

我正在使用 dotnetcore 2.2 和 Razor 页面启动一个新应用程序。我想“组件化”布局文件的导航栏部分,显示用户名,并根据登录者隐藏/显示菜单项。最好的方法是什么?我尝试了部分,但似乎无法使其工作。 有什么建议吗?

【问题讨论】:

    标签: .net-core razor-pages


    【解决方案1】:

    视图组件是您所描述内容的不错选择:

    默认.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")
    

    您也可以使用标签助手调用组件,但我上次尝试有一个错误(功能?)要求视图组件构造函数中的每个参数都包含在助手中,否则它根本没有呈现。

    Here's a link to MS's documentation for view components.

    【讨论】:

    • 谢谢,杰夫,这正是我想要的。我很惊讶 VisualStudio 没有在“添加新项目”对话框中将其设为一等公民(或者他们可能会这样做,但我只是没有看到)
    • 不,你是对的@WOPR,出于某种原因,它需要一些手动设置。
    猜你喜欢
    • 2019-09-21
    • 2018-08-24
    • 2020-01-27
    • 2020-10-04
    • 2019-09-28
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多