.NET Core中存在以下问题。我有一个应用程序,该应用程序具有从数据库生成的侧边菜单,现在我的问题是如何做到这一点,这样您就不必在每个视图中都包含此菜单,而只需将其自动加载到侧边菜单中即可。在symfony框架中,我是这样做的:
{{render (controller (
'AppBundle: Article: recentArticles'
{'max': 3}
))}}
当然,除了菜单之外,它还可以是每个子页面上,最近注册的等等的最近添加文章的列表。
在.Net Core中,我不知道可以在_Layouts.shtml中添加一些固定元素(例如搜索引擎),但是如何添加这样的动态菜单,该菜单在每次加载页面时从数据库下载?
答案 0 :(得分:0)
简单的答案是在要菜单的页面上进行一次foreach循环,然后将集合绑定到该菜单,从而从集合中创建html标签。如果您希望它位于_Layout.cshtml文件中,则除了集合中的菜单数据外,您还需要添加与之相关的视图,以便您可以过滤项目在哪一页上显示。因此,示例将类似于
@foreach (var item in menuItems.Where(x => x.View == "pass the view name"))
{
<div class="menuItem" name="item.Name"/>
....
}
或者如果您将其他菜单结构用作<li>
或treeList,则使用相同的方法
不同的标签:)
视图名称可以通过ViewData["viewName"]
或ViewContext.RouteData.Values["controller"].ToString()
进行传递
因为它应该通过当前视图,所以菜单已进入并相应地填充菜单
答案 1 :(得分:0)
您应该考虑使用View component。这是动态菜单的一个很好的解决方案。