c# - 使用 Bootstrap 的 C# MVC 网站中的面包屑导航

标签 c# asp.net-mvc asp.net-mvc-4 twitter-bootstrap breadcrumbs

我想在我的网站上添加面包屑,但我不太确定该怎么做。我已经能够使用以下代码获得一些基本的工作:

<ol class="breadcrumb">
    <li class="active">
        @Html.ActionLink("Home", "Index", "Home")
        @if (ViewContext.RouteData.Values["controller"] != "Home" && ViewContext.RouteData.Values["action"] != "Index")
        {
            @:> @Html.ActionLink(ViewContext.RouteData.Values["controller"].ToString(), "Index", ViewContext.RouteData.Values["controller"].ToString())
        }

        > @ViewBag.SubTitle
    </li>
</ol>

但我遇到的问题是,这实际上并没有跟踪您的历史记录,它只是向您显示

Home > ControllerName > CurrentItem

例如

Home > Members > Greg Dodd

当您来自成员(member)搜索页面时,这很有效,但是如果您来自不同的页面,那么您会丢失该历史记录。如何使用 MVC 中的历史记录创建面包屑路径?

我想我要找的是这样的东西:

Home > Controller1 > PreviousItem > ... > CurrentItem

例如 如果您打开一个博客,然后打开一个特定的博客项目,然后单击作者姓名,您的面包屑应该是:

Home > Blog > SomeBlogTitle > AuthorName

但是,如果您打开一个作者列表,然后选择一个特定的作者,您将看到使用相同 Controller 呈现的相同 View ,但面包屑应显示:

Home > Authors > AuthorName

最佳答案

如果您想要一个简单的解决方案,您可以使用此代码。它仅用于默认路由配置。

Home / Controller / Page

  @if (ViewContext.RouteData.Values["controller"].ToString().ToLower() != "home")
  {
       <ol class="breadcrumb">
             <li>
              @Html.ActionLink("Home", "Index", "Home")
             </li>
             <li> @Html.ActionLink(ViewContext.RouteData.Values["controller"].ToString(), "Index")
             </li>                                
             <li class="active"> @Html.ActionLink(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["action"].ToString())
             </li>                                                       
        </ol>
   }

关于c# - 使用 Bootstrap 的 C# MVC 网站中的面包屑导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21494075/

相关文章:

c# - Exchange Server 2007 传输代理问题

c# - 为什么在结构中使用 LINQ 时必须复制 "this"(如果我这样做可以)?

jquery - MVC 4 - 带 ID 和标签的 jQuery 自动完成,保存子对象

c# - 如何将 SimpleMembership UserProfile 链接到具有外键的扩展配置文件?

c# - SerialPort_DataReceived 事件的问题

c# - 在回调请求上保留 ViewState

c# - 'ZipArchiveEntry' 不包含 'ExtractToFile' 的定义

asp.net - ASP.NET 或 SQL Server 2008 中的并发更新处理

linq - 使用 LinqToCSV 将 CSV 写入 MemoryStream 不会返回任何数据

asp.net-mvc-4 - 如何在主机服务器中配置多个 Redis 端口