解决方法
我们使用动作过滤器。
… …
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对象放入会话。 Url是HttpContext.Current.Request.RawUrl