【发布时间】:2014-02-24 23:23:10
【问题描述】:
我希望将面包屑添加到我的网站,但我不太确定如何去做。我已经能够使用以下代码获得一些基本的工作:
<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
当您来自会员搜索页面时,这很有效,但是如果您来自其他页面,那么您会丢失该历史记录。如何在 MVC 中使用 History 创建面包屑路径?
我想我正在寻找类似的东西:
Home > Controller1 > PreviousItem > ... > CurrentItem
例如 如果您打开一个博客,然后打开一个特定的博客项目,然后单击作者姓名,您的面包屑应该是:
Home > Blog > SomeBlogTitle > AuthorName
如果您打开作者列表然后选择特定作者,您将看到使用相同控制器呈现的相同视图,但面包屑应该显示:
Home > Authors > AuthorName
【问题讨论】:
-
你试过MvcSiteMapProvider吗?
-
我看了看,但不知道如何使用它来做我所追求的。我无法映射动态数据库中的每个对象。是否有教程说明如何操作?
-
我已经更新了我的答案。
标签: c# asp.net-mvc asp.net-mvc-4 twitter-bootstrap breadcrumbs