在mvc dotnetcore中处理面包屑

问题描述 投票:4回答:2

我正在开发一个有很多页面和流量的网站(MVC dotnetcore)。用户可以从许多不同的方式接近单个页面。当用户想要返回时我会陷入困境,而且我没有跟踪其最后一个URL。而我对如何处理这种情况感到困惑?

我应该使用全局变量来跟踪最后一个URL吗?

但在这种情况下,我要在每个屏幕上做一个可重复的代码,或者可能是每个get / post调用。

要么

我应该使用哪种面包屑结构?

就像用户从Index移动Admin一样,会有这样的东西

Index >> Admin

并进一步

Index >> Admin >> ManageUsers 

这些将是他们相关页面的链接。但我不知道如何在mvc dotnetcore中处理这个问题?任何的想法??

哪种方法很好用?任何形式的帮助将不胜感激。

asp.net-mvc asp.net-core breadcrumbs
2个回答
3
投票

我知道答案有点旧,但在创建网站时遇到了同样的问题。我不想在两个项目中重复代码,我希望面包屑能够处理多个级别,尤其是不在同一个Controller中的级别。我最终创建了一个小程序包来管理所有这些:SmartBreadcrumbs(在Nuget中可用)。

它非常易于使用,您只需要:

  1. 在您的服务配置中,添加services.UseBreadcrumbs(GetType().Assembly);
  2. [DefaultBreadcrumb("My home")]添加到您的默认节点(通常是Home)
  3. [Breadcrumb("Contact me", FromAction = "Index" FromController = typeof(HomeController))]添加到其他级别(FromAction可以是Controller.Action的任意组合)

PS:即使没有指定FromAction,默认节点也始终存在。 关于github链接或Blog post的更多信息。

编辑:更新了2.0.0版的示例


1
投票

我建议你使用面包车。它是一个引导组件,您可以在前端管理它。在站点地图中,您必须做一些额外的工作。与sitemap相比,breadcumb很简单,只需要很少的努力,你也可以自定义它breadcomb请访问上面的链接它将对你有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.