2008-09-15 33 views

Trả lời

12

Chúng tôi đang sử dụng bộ lọc hành động cho việc này.

...

public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     var controller = (Controller) filterContext.Controller; 
     Breadcrumb[] breadcrumbs = _breadcrumbManager.PushBreadcrumb(_breadcrumbLinkText); 
     controller.ViewData.Add(breadcrumbs); 
    } 

trước khi bạn đề cập đến nó, tôi cũng có một sự chán ghét đối với vị trí phục vụ trong bộ lọc thuộc tính - nhưng chúng tôi là trái với vài lựa chọn. IBreadcrumbManager trông giống như sau:

public interface IBreadcrumbManager 
{ 
    Breadcrumb[] PushBreadcrumb(string linkText); 
} 

Việc triển khai đặt đối tượng Breadcrumb vào phiên. Url là HttpContext.Current.Request.RawUrl

+5

là việc thực hiện các IBreadcrumbManager đâu đó chúng ta có thể nhìn vào? _breakcrumbLinkText xuất phát từ đâu? – flipdoubt

+1

bạn có thể hiển thị ví dụ chi tiết hơn về giải pháp này cho trình trợ giúp đường dẫn không? Bạn có bất kỳ giải pháp kiểm tra nào mà bạn có thể chia sẻ không? Tôi không thực sự có được nó với giao diện _breadcrumbManager/IBreadcrumbManager .. – Webking

2

@ Chris: một cái gì đó như thế này:

 <% 
     foreach (var item in ViewData.Get<Breadcrumb[]>()) 
      { 
     %> 
       <a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> &raquo; 
     <% 
      } 
     %> 
Các vấn đề liên quan