解决方法
我们使用动作过滤器。
… …
- 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