我是mvc的菜鸟,我已经浏览或阅读了大约50个关于此的问题和文章,但我不知道该怎么做。
我使用了VS2017的MVC核心模板应用程序,其中包括导航栏。我添加了登录,cookie,一些动作和控制器,它工作正常。现在我要坚持的是如何在导航栏上显示用户图标而不是登录按钮。 我想我会读取带有用户ID的cookie,如果它存在则会呈现用户图标,如果不存在登录按钮(这是第三方单点登录过程)。
但是,导航栏位于_layout,我不知道如何在那里传递数据。所以我在几个地方读到我应该继承基本视图,在其他一些地方我应该创建局部视图。作为一个菜鸟,我迷路了。
所以,现在我添加到我的布局页面
@Html.Partial("~/Views/Shared/Layout.cshtml");
这会导致从_Layout复制的导航栏。
如何将我想要的数据链接到此视图?
我想在其他观点中使用razor @ViewBag.FirstMenuItem
或类似的东西。
这是正确的做法吗?我想这将是最常见的事情,但是我对那些为较旧的MVC版本编写的文章以及那些我不清楚应该放置的代码片段感到困惑。
答案 0 :(得分:1)
答案是:使用新的ViewComponents,它们与旧的部分视图类似。