【发布时间】:2010-09-09 02:57:34
【问题描述】:
我知道你可以很容易地根据数据创建一个助手。因此,如果可能,请仅提交包含获取数据的答案。
【问题讨论】:
我知道你可以很容易地根据数据创建一个助手。因此,如果可能,请仅提交包含获取数据的答案。
【问题讨论】:
我们为此使用了动作过滤器。
...
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);
}
实现将面包屑对象放入会话中。网址是HttpContext.Current.Request.RawUrl
【讨论】:
@Chris:像这样:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>
【讨论】: