我知道你可以很容易地根据数据做出帮助。因此,如果可能,请仅提交包含获取数据的答案。
答案 0 :(得分:12)
我们正在使用动作过滤器。
...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (Controller) filterContext.Controller;
Breadcrumb[] breadcrumbs = _breadcrumbManager.PushBreadcrumb(_breadcrumbLinkText);
controller.ViewData.Add(breadcrumbs);
}
在你提到它之前,我也对过滤器属性中的服务位置感到厌恶 - 但我们只剩下几个选项。 IBreadcrumbManager如下所示:
public interface IBreadcrumbManager
{
Breadcrumb[] PushBreadcrumb(string linkText);
}
实现将Breadcrumb对象放入Session。网址为HttpContext.Current.Request.RawUrl
答案 1 :(得分:2)
@Chris:这样的事情:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>