我知道根据数据你可以很容易地创建一个助手。因此,如果可能,请仅提交包含获取数据的答案。

有帮助吗?

解决方案

我们为此使用动作过滤器。

...

    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

其他提示

@克里斯:像这样的东西:

        <% 
        foreach (var item in ViewData.Get<Breadcrumb[]>())
            {
        %>
                <a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> &raquo;
        <% 
            } 
        %>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top