asp.net-mvc - 在 mvc dotnetcore 中处理面包屑

标签 asp.net-mvc asp.net-core breadcrumbs

我正在开发一个网站(MVC dotnetcore),该网站也有很多页面和流程。用户可以通过多种不同的方式访问单个页面。当用户想要返回并且我没有任何其最后一个 URL 的跟踪时,我陷入困境。 我很困惑如何处理这种情况?

Should I use a global variable to keep track of last URL??

但在这种情况下,我必须在每个屏幕上执行可重复的代码,或者可能为每个 get/post 调用执行可重复的代码。

或者

Should I use kind of breadcrumbs structure?

就像如果用户将管理员从索引中移出,就会出现类似的情况

Index >> Admin

为了进一步

Index >> Admin >> ManageUsers 

这些将是指向其相关页面的链接。 但我不知道如何在 mvc dotnetcore 中处理这个问题?有什么想法吗?

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

最佳答案

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

它非常容易使用,您需要做的就是:

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

PS:即使没有指定 FromAction,默认节点始终存在。
更多信息请参见 github 链接或 Blog post .

编辑:更新了版本 2.0.0 的示例

关于asp.net-mvc - 在 mvc dotnetcore 中处理面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44913519/

相关文章:

c# - Asp.NET Core json 文件或数据路径 - 放在哪里

c# - 如何在授权过滤器中获取secrets.json或azure secret ?

web-component - Lit-element,如何拼接TemplateResult?

css - 如何显示与其他元素颜色不同的面包屑元素

css - 更改滚动时的 CSS 以及对辅助功能的影响

javascript - Vue.js 在@change 上获取选定的选项

c# - 已存在与此命令关联的打开的 DataReader,必须先将其关闭 在 Nopcommerce 中

linux - 如何在 linux 服务器上使用 pm2 运行 asp.net core 应用程序

asp.net - 在 ASP.NET MVC 3 中为未经身份验证的用户缓存主页

c# - 当 Controller 接收到数据时,模型是否保持其结构?