2013-02-27 7 views
9

В основном то, что я пытаюсь сделать, это создать список панировочных сухарей. Этот список динамических (когда вы переходите на более глубокие страницы, растет список панировочных сухарей), и большинство ссылок имеют параметры. Я видел примеры с MVCSiteInfo, но немного запутался, так как большинство примеров, которые я видел, фокусируются на статическом наборе ссылок без параметров. Я не могу себе представить, что это не распространенная проблема, поэтому мне было интересно, какой лучший способ выполнить эту функцию.ASP.NET MVC 4 Пазлы с динамическим списком и параметрами

Заранее благодарен!

Sieg

+1

ли вы когда-нибудь найти решение? Я тоже что-то искал – dreza

+0

Dreza, я видел много людей, использующих SiteMap. Кажется, он выполняет эту работу, но выглядит довольно сложно. Я решил просто иметь раздел на странице, который только что заполнил соответствующие ссылки. На странице макета были сохранены основные теги ul для списка. Просто мне показалось проще. –

+0

Приветствия. Да, я заглянул в карту сайта и даже использовал ее немного, но у меня было множество проблем, пытаясь заставить ее работать, поэтому не уверен, что это стоит усилий. – dreza

ответ

7

Я предлагаю вам использовать MVC Sitemap provider и хлебного мякиша следы от него. Вам нужно будет создать поставщик динамического узла, но это довольно просто - просто следуйте the steps to use Dynamic Nodes

Один из трюков при построении динамических узлов заключается в том, чтобы убедиться, что вы заходите через каждый узел на каждом уровне, но добавляете его к узлам коллекция наверху.

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

, а затем это просто случай положить сухари в этом, как

Html.MvcSiteMap().SiteMapPath() 

Главная> События> марафоны> мельбурн марафон

 Смежные вопросы

  • Нет связанных вопросов^_^