2008-09-15 3 views

ответ

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); 
} 

Реализация помещает объекты хлебных крошек в сессии. Ссылка HttpContext.Current.Request.RawUrl

+5

ли реализация IBreadcrumbManager где мы можем смотреть? Откуда возникает _breakcrumbLinkText? – flipdoubt 2009-09-25 21:11:38

2

@ Крис: что-то вроде этого:

 <% 
     foreach (var item in ViewData.Get<Breadcrumb[]>()) 
      { 
     %> 
       <a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> &raquo; 
     <% 
      } 
     %> 
Смежные вопросы