asp核心应用程序中的动态导航栏

时间:2017-03-27 20:58:43

标签: asp.net-mvc asp.net-core-1.1

我是mvc的菜鸟,我已经浏览或阅读了大约50个关于此的问题和文章,但我不知道该怎么做。

我使用了VS2017的MVC核心模板应用程序,其中包括导航栏。我添加了登录,cookie,一些动作和控制器,它工作正常。现在我要坚持的是如何在导航栏上显示用户图标而不是登录按钮。 我想我会读取带有用户ID的cookie,如果它存在则会呈现用户图标,如果不存在登录按钮(这是第三方单点登录过程)。

但是,导航栏位于_layout,我不知道如何在那里传递数据。所以我在几个地方读到我应该继承基本视图,在其他一些地方我应该创建局部视图。作为一个菜鸟,我迷路了。

所以,现在我添加到我的布局页面

@Html.Partial("~/Views/Shared/Layout.cshtml");

这会导致从_Layout复制的导航栏。 如何将我想要的数据链接到此视图? 我想在其他观点中使用razor @ViewBag.FirstMenuItem或类似的东西。

这是正确的做法吗?我想这将是最常见的事情,但是我对那些为较旧的MVC版本编写的文章以及那些我不清楚应该放置的代码片段感到困惑。

1 个答案:

答案 0 :(得分:1)

答案是:使用新的ViewComponents,它们与旧的部分视图类似。