2013-02-27 15 views
9

Về cơ bản những gì tôi đang cố gắng làm là tạo ra một danh sách các đường dẫn. Danh sách năng động đó (khi bạn đi sâu vào các trang sâu hơn, danh sách các đường dẫn phát triển) và hầu hết các liên kết đều có các tham số. Tôi đã nhìn thấy ví dụ với MVCSiteInfo nhưng một chút bối rối như hầu hết các ví dụ tôi đã nhìn thấy tập trung vào một tập hợp các liên kết tĩnh không có tham số. Tôi không thể tưởng tượng đây không phải là một vấn đề phổ biến vì vậy tôi đã tự hỏi cách tốt nhất để thực hiện chức năng này là gì.ASP.NET MVC 4 Đường dẫn với danh sách động và tham số

Cảm ơn trước!

Sieg

+1

Bạn đã bao giờ tìm thấy một giải pháp? Tôi đang tìm một cái gì đó cũng như – dreza

+0

Dreza, tôi đã nhìn thấy rất nhiều người sử dụng SiteMap. Nó dường như làm công việc nhưng trông khá phức tạp. Tôi đã chọn chỉ đơn giản là có một phần trong trang vừa điền vào các liên kết thích hợp. Trang bố cục chứa các thẻ ul chính cho danh sách. Dường như đơn giản hơn với tôi. –

+0

Chúc mừng cho điều đó. Vâng tôi đã nhìn vào sơ đồ trang web và thậm chí sử dụng nó một chút nhưng đã có đống các vấn đề về cố gắng để làm cho nó hoạt động để không chắc chắn nếu nó là giá trị nỗ lực. – dreza

Trả lời

7

tôi muốn đề nghị bạn sử dụng MVC Sitemap provider và cốm bánh mì con đường mòn từ nó. Bạn sẽ cần phải xây dựng Nhà cung cấp nút động, nhưng điều đó khá đơn giản - chỉ cần thực hiện theo the steps to use Dynamic Nodes

Một trong những thủ thuật khi tạo nút động là đảm bảo rằng bạn tìm kiếm trên mỗi nút ở mỗi cấp, nhưng thêm nó vào nút bộ sưu tập ở trên cùng.

 var nodes = new List<DynamicNode>(); 
     foreach (var eventCategory in eventCategories) 
     { 
      var node = new DynamicNode 
       { 
        Key = string.Format("{0}_{1}", "home_events", eventCategory.Name), 
        ParentKey = "home_events", 
        Title = pluralize.Pluralize(eventCategory.Name), 
        Description = eventCategory.Description, 
        Controller = "event", 
        Action = "category" 
       }; 
      node.RouteValues.Add("slug", eventCategory.Slug); 
      nodes.Add(node); 

      foreach (var e in eventCategory.Events) 
      { 
       var eventNode = new DynamicNode 
       { 
        Key = string.Format("{0}_{1}", eventCategory.Name, e.Name), 
        ParentKey = node.Key, 
        Title = e.Name, 
        Controller = "event", 
        Action = "event" 
       }; 
       eventNode.RouteValues.Add("categorySlug", eventCategory.Slug); 
       eventNode.RouteValues.Add("slug", e.Slug); 
       nodes.Add(eventNode); 
      } 
     } 

và sau đó nó chỉ là một trường hợp đặt bánh mì vụn trong như

Html.MvcSiteMap().SiteMapPath() 

nhà này> Sự kiện> marathon> melbourne marathon