2017-01-23 146 views
0

我正在構建一個包含動態生成菜單的網站,由於佈局更改,我當前的方法需要更改。在C中動態填充自舉垂直多級子菜單#

老方法:

// Create the main menu with quantities and totals 
public static StringBuilder CreateMenu(string iso, decimal languageID, string alias, string startItemsFromAlias = null, bool showAllItems = false, string url = null, int headerLevel = 3) 
{ 
    List<GroupLite> groups = BL_Group.GetMenuStructure(languageID, alias, startItemsFromAlias, showAllItems, 1); 

    StringBuilder menu = new StringBuilder(); 
    int i = -1, j = 0; 
    bool isParent, lastItem; 
    string className, href; 
    headerLevel = headerLevel == 0 ? 2 : headerLevel; 

    if (!String.IsNullOrEmpty(url) && !url.EndsWith("/")) 
     url += "/"; 

    if (groups.Count > 0) 
    { 
     foreach (GroupLite item in groups) 
     { 
      className = ""; 

      // Determine the right opening/closure for our tags 
      j = (item.Level.Length - item.Level.Replace(".", "").Length); 

      if (i != -1) 
       if (j == i) 
        menu.Append("</li>"); 
       else if (j > i) 
        menu.Append("<ul>"); 
       else if (j < i) 
       { 
        menu.Append("</li>"); 

        for (int k = j; k < i; k++) 
         menu.Append("</ul>"); 

        menu.Append("</li>"); 
       } 

      i = j; 

      // Every first and last items has a class attached to them (first|last) 
      if (j == 0) 
       lastItem = !groups.Exists(r => (r.Level.Length - r.Level.Replace(".", "").Length) == j && r.Position > item.Position); 
      else 
       lastItem = !groups.Exists(r => r.Level.StartsWith(item.Level.Substring(0, item.Level.LastIndexOf(".") + 1)) && (r.Level.Length - r.Level.Replace(".", "").Length) == j && r.Position > item.Position); 

      if (item.Position == 1) 
       className = "first "; 

      if (lastItem) 
       className += "last "; 

      // Check if our item is the parent of other items (necessary for the url) 
      isParent = groups.Where(r => r.Level.StartsWith(item.Level + ".")).Count() > 0; 

      // Mark the current URL as active if necessary 
      if (BL_Group.GetOverviewByAlias(languageID, iso, item.Alias).Count == 0) 
       href = Link.Catalogue(iso, item.Alias); 
      else 
       href = Link.Group(iso, item.Alias); 

      if (!string.IsNullOrEmpty(url)) 
      { 
       if (url.StartsWith(href) || isParent) 
        className += " active "; 
      } 

      if (!string.IsNullOrEmpty(className)) 
       className = " class='" + className.Trim() + "'"; 

      menu.Append("<li" + className + "><a href='" + href + "'>" + item.Name + "</a>"); 
     } 

     for (i = 0; i < j; i++) 
      menu.Append("</li></ul>"); 

     menu.Append("</li>"); 
    } 

    return menu; 
} 

這將返回:

<li class='first'><a href='/nl/nieuw/aanbod'>Nieuw</a></li> 
 
<li><a href='/nl/geschenkverpakkingen/aanbod'>Geschenkverpakkingen</a></li> 
 
<li class='active'><a href='/nl/gezelschapsspelen'>Gezelschapsspellen</a><ul> 
 
    <li class='active'><a href='/nl/gezelschapsspelen-kinderen-8j'>Gezelschapsspelen kinderen -8j</a><ul> 
 
     <li class='first active'><a href='/nl/bordspel-8j-1'>Bordspel -8j</a><ul> 
 
      <li class='first'><a href='/nl/solo-spel-8j/aanbod'>Solo spel -8j</a></li> 
 
      <li><a href='/nl/vanaf-2-spelers-8j-1/aanbod'>Vanaf 2 spelers -8j</a></li> 
 
      <li class='last'><a href='/nl/vanaf-3-spelers-8j/aanbod'>Vanaf 3 spelers -8j</a></li> 
 
     </ul> 
 
     </li> 
 
     <li class='last active'><a href='/nl/kaartspel-reisformaat-8j'>Kaartspel reisformaat -8j</a><ul> 
 
      <li class='first'><a href='/nl/solo-spel-8j-1/aanbod'>Solo spel -8j</a></li> 
 
      <li><a href='/nl/vanaf-2-spelers-8j-2/aanbod'>Vanaf 2 spelers -8j</a></li> 
 
      <li class='last'><a href='/nl/vanaf-3-spelers-8j-1/aanbod'>Vanaf 3 spelers -8j</a></li> 
 
     </ul> 
 
    </ul> 
 
    </li> 
 
    <li class='last active'><a href='/nl/gezelschapsspelen-volwassenen-kinderen-8j'>Gezelschapsspelen volwassenen & kinderen +8j</a><ul> 
 
     <li class='first active'><a href='/nl/bordspel-8j'>Bordspel +8j</a><ul> 
 
      <li class='first'><a href='/nl/vanaf-2-spelers-8j/aanbod'>Vanaf 2 spelers +8j</a></li> 
 
      <li><a href='/nl/solo-spel-8j-2/aanbod'>Solo spel +8j</a></li> 
 
      <li class='last'><a href='/nl/vanaf-3-spelers-8j-2/aanbod'>Vanaf 3 spelers +8j</a></li> 
 
     </ul> 
 
     </li> 
 
     <li class='last active'><a href='/nl/kaartspel-reisformaat-8j-1'>Kaartspel reisformaat +8j</a><ul> 
 
      <li class='last'><a href='/nl/vanaf-3-spelers-8j-3/aanbod'>Vanaf 3 spelers +8j</a></li> 
 
     </ul> 
 
    </ul> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/bio-natuurvoeding'>Bio & Natuurvoeding</a><ul> 
 
    <li class='first active'><a href='/nl/bakproducten'>Bakproducten</a><ul> 
 
     <li class='first'><a href='/nl/bakbenodigdheden/aanbod'>Bakbenodigdheden</a></li> 
 
     <li><a href='/nl/bind-geleermiddelen/aanbod'>Bind- & geleermiddelen</a></li> 
 
     <li><a href='/nl/bloem-meel/aanbod'>Bloem & meel</a></li> 
 
     <li><a href='/nl/desserts-dessertbereidingen/aanbod'>Desserts & dessertbereidingen</a></li> 
 
     <li class='last'><a href='/nl/zemelen-en-kiemen/aanbod'>Zemelen en kiemen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/beschuiten-rijstwafels'>Beschuiten & rijstwafels</a><ul> 
 
     <li class='first'><a href='/nl/crackers-beschuiten/aanbod'>Crackers & beschuiten</a></li> 
 
     <li><a href='/nl/essenenbrood/aanbod'>Essenenbrood</a></li> 
 
     <li><a href='/nl/rijst-maiswafels/aanbod'>Rijst- & maïswafels</a></li> 
 
     <li class='last'><a href='/nl/soepstengels-toast/aanbod'>Soepstengels & toast</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/conserven-tapas'>Conserven & Tapas</a><ul> 
 
     <li class='first'><a href='/nl/antipasti/aanbod'>Antipasti</a></li> 
 
     <li><a href='/nl/bereide-gerechten/aanbod'>Bereide gerechten</a></li> 
 
     <li><a href='/nl/fruitconserven/aanbod'>Fruitconserven</a></li> 
 
     <li><a href='/nl/groenteconserven/aanbod'>Groenteconserven</a></li> 
 
     <li><a href='/nl/pesto-tapas/aanbod'>Pesto & tapas</a></li> 
 
     <li><a href='/nl/peulvruchten/aanbod'>peulvruchten</a></li> 
 
     <li><a href='/nl/soepen/aanbod'>Soepen </a></li> 
 
     <li><a href='/nl/visconserven-1/aanbod'>Visconserven</a></li> 
 
     <li><a href='/nl/vleesvervangers-vegetarisch/aanbod'>Vleesvervangers vegetarisch</a></li> 
 
     <li class='last'><a href='/nl/vleesconserven/aanbod'>Vleesconserven</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/broodbeleg'>Broodbeleg</a><ul> 
 
     <li class='first'><a href='/nl/chocopasta/aanbod'>Chocopasta</a></li> 
 
     <li><a href='/nl/confituur-stropen/aanbod'>Confituur & stropen</a></li> 
 
     <li><a href='/nl/honing/aanbod'>Honing</a></li> 
 
     <li><a href='/nl/noten-zadenpasta/aanbod'>Noten- & zadenpasta</a></li> 
 
     <li class='last'><a href='/nl/vegetarisch-broodbeleg/aanbod'>Vegetarisch broodbeleg</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/deegwaren-pastas'>Deegwaren - Pasta's</a><ul> 
 
     <li class='first'><a href='/nl/kamut-quinoa-etc/aanbod'>Kamut, quinoa etc.</a></li> 
 
     <li><a href='/nl/spelt/aanbod'>Spelt</a></li> 
 
     <li class='last'><a href='/nl/tarwe/aanbod'>Tarwe</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/dranken-1'>Dranken</a><ul> 
 
     <li class='first'><a href='/nl/alcoholvrij-2/aanbod'>Alcoholvrij</a></li> 
 
     <li><a href='/nl/frisdranken/aanbod'>Frisdranken</a></li> 
 
     <li><a href='/nl/groentesappen-1/aanbod'>Groentesappen</a></li> 
 
     <li><a href='/nl/koude-dranken/aanbod'>Koude dranken</a></li> 
 
     <li><a href='/nl/melk/aanbod'>Melk</a></li> 
 
     <li class='active'><a href='/nl/plantaardige-dranken'>Plantaardige dranken</a><ul> 
 
      <li class='first'><a href='/nl/sojadranken/aanbod'>Sojadranken</a></li> 
 
      <li><a href='/nl/rijstdranken/aanbod'>Rijstdranken</a></li> 
 
      <li class='last'><a href='/nl/noten-granen-dranken/aanbod'>Noten- & granen dranken</a></li> 
 
     </ul> 
 
     </li> 
 
     <li><a href='/nl/siropen-diksappen/aanbod'>Siropen & diksappen</a></li> 
 
     <li><a href='/nl/vruchtensappen/aanbod'>Vruchtensappen</a></li> 
 
     <li class='last'><a href='/nl/water/aanbod'>Water</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/noten-zaden-etc'>Noten & Zaden etc.</a><ul> 
 
     <li class='first'><a href='/nl/gedroogde-vruchten/aanbod'>Gedroogde vruchten</a></li> 
 
     <li><a href='/nl/noten/aanbod'>Noten</a></li> 
 
     <li class='last'><a href='/nl/pitten-zaden/aanbod'>Pitten & zaden</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/ontbijt'>Ontbijt</a><ul> 
 
     <li class='first'><a href='/nl/cornflakes/aanbod'>Cornflakes</a></li> 
 
     <li><a href='/nl/crunchy-flakes/aanbod'>Crunchy flakes</a></li> 
 
     <li><a href='/nl/gepofte-ontbijtgranen/aanbod'>Gepofte ontbijtgranen</a></li> 
 
     <li><a href='/nl/muesli-1/aanbod'>Muesli</a></li> 
 
     <li><a href='/nl/ontbijtpappen/aanbod'>Ontbijtpappen</a></li> 
 
     <li class='last'><a href='/nl/vlokken/aanbod'>Vlokken</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/granen-peulvruchten-1'>Granen & peulvruchten</a><ul> 
 
     <li class='first'><a href='/nl/granenmix/aanbod'>Granenmix</a></li> 
 
     <li><a href='/nl/kiemzaden/aanbod'>Kiemzaden</a></li> 
 
     <li><a href='/nl/linzen-bonen/aanbod'>Linzen & bonen</a></li> 
 
     <li><a href='/nl/peulvruchten-1/aanbod'>Peulvruchten</a></li> 
 
     <li><a href='/nl/quinoa-couscous-bulgur/aanbod'>Quinoa, couscous & bulgur</a></li> 
 
     <li class='last'><a href='/nl/rijst-1/aanbod'>Rijst</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/oosterse-macrobiotische-voeding'>Oosterse & macrobiotische voeding</a><ul> 
 
     <li class='first'><a href='/nl/deegwaren-noedels/aanbod'>Deegwaren & noedels</a></li> 
 
     <li><a href='/nl/geleermiddel/aanbod'>Geleermiddel</a></li> 
 
     <li><a href='/nl/macrobiotiek-keukengerei/aanbod'>Macrobiotiek keukengerei</a></li> 
 
     <li><a href='/nl/soepen-bouillons/aanbod'>Soepen & bouillons</a></li> 
 
     <li><a href='/nl/specialiteiten-smaakmakers/aanbod'>Specialiteiten & smaakmakers</a></li> 
 
     <li class='last'><a href='/nl/zeewieren/aanbod'>Zeewieren</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/plantaardige-desserts/aanbod'>Plantaardige desserts</a></li> 
 
    <li class='active'><a href='/nl/zoete-versnaperingen'>Zoete versnaperingen</a><ul> 
 
     <li class='first'><a href='/nl/chocolade/aanbod'>Chocolade</a></li> 
 
     <li><a href='/nl/koeken/aanbod'>Koeken</a></li> 
 
     <li><a href='/nl/repen-bars/aanbod'>Repen & bars</a></li> 
 
     <li class='last'><a href='/nl/snoep/aanbod'>Snoep</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='last active'><a href='/nl/zoute-versnaperingen'>Zoute versnaperingen</a><ul> 
 
     <li class='first'><a href='/nl/aardappelchips/aanbod'>Aardappelchips</a></li> 
 
     <li><a href='/nl/borrelhapjes-zoutjes/aanbod'>Borrelhapjes & zoutjes</a></li> 
 
     <li class='last'><a href='/nl/groentenchips/aanbod'>Groentenchips</a></li> 
 
    </ul> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/voedingssupplementen'>Voedingssupplementen</a><ul> 
 
    <li><a href='/nl/allergieen/aanbod'>Allergieën</a></li> 
 
    <li><a href='/nl/anti-stress-relaxatie/aanbod'>Anti-stress & relaxatie</a></li> 
 
    <li><a href='/nl/antioxidanten/aanbod'>Antioxidanten</a></li> 
 
    <li><a href='/nl/bloedsomloop/aanbod'>Bloedsomloop</a></li> 
 
    <li><a href='/nl/detox-zuiveren/aanbod'>Detox & Zuiveren</a></li> 
 
    <li><a href='/nl/energie-vitaliteit/aanbod'>Energie & Vitaliteit</a></li> 
 
    <li><a href='/nl/geheugen/aanbod'>Geheugen</a></li> 
 
    <li><a href='/nl/haar-nagels/aanbod'>Haar & Nagels</a></li> 
 
    <li><a href='/nl/huid/aanbod'>Huid</a></li> 
 
    <li><a href='/nl/lever-gal/aanbod'>Lever & Gal </a></li> 
 
    <li><a href='/nl/luchtwegen/aanbod'>Luchtwegen</a></li> 
 
    <li><a href='/nl/nachtrust/aanbod'>Nachtrust</a></li> 
 
    <li><a href='/nl/ogen-gezichtsvermogen/aanbod'>Ogen & Gezichtsvermogen</a></li> 
 
    <li><a href='/nl/omega-vetzuren/aanbod'>Omega-vetzuren</a></li> 
 
    <li><a href='/nl/probiotica-darmflora/aanbod'>Probiotica - Darmflora</a></li> 
 
    <li><a href='/nl/slanke-lijn/aanbod'>Slanke lijn </a></li> 
 
    <li><a href='/nl/soepelheid-gewrichten/aanbod'>Soepelheid & Gewrichten</a></li> 
 
    <li><a href='/nl/spijsvertering/aanbod'>Spijsvertering</a></li> 
 
    <li><a href='/nl/sport/aanbod'>Sport</a></li> 
 
    <li><a href='/nl/stoelgang-darmtransit/aanbod'>Stoelgang - Darmtransit</a></li> 
 
    <li><a href='/nl/stofwisseling/aanbod'>Stofwisseling</a></li> 
 
    <li><a href='/nl/urinewegen-blaas/aanbod'>Urinewegen & Blaas</a></li> 
 
    <li><a href='/nl/vitaminen-mineralen/aanbod'>Vitaminen & Mineralen</a></li> 
 
    <li><a href='/nl/voor-kinderen/aanbod'>Voor Kinderen </a></li> 
 
    <li><a href='/nl/voor-de-man/aanbod'>Voor de Man </a></li> 
 
    <li><a href='/nl/voor-de-vrouw/aanbod'>Voor de Vrouw</a></li> 
 
    <li><a href='/nl/voor-senioren/aanbod'>Voor Senioren</a></li> 
 
    <li><a href='/nl/weerstand-immuniteit/aanbod'>Weerstand - Immuniteit</a></li> 
 
    <li><a href='/nl/bijenproducten-apitherapie/aanbod'>Bijenproducten - apitherapie</a></li> 
 
    <li class='last'><a href='/nl/gemoedstoestand/aanbod'>Gemoedstoestand</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/lichaamsverzorging'>Lichaamsverzorging</a><ul> 
 
    <li class='first active'><a href='/nl/bad-doucheproducten'>Bad- & doucheproducten</a><ul> 
 
     <li class='first'><a href='/nl/bad-en-douchegel-schuim/aanbod'>Bad- en douchegel & schuim</a></li> 
 
     <li><a href='/nl/badolie/aanbod'>Badolie</a></li> 
 
     <li class='last'><a href='/nl/zeep/aanbod'>Zeep</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/deodoranten-parfums/aanbod'>Deodoranten & parfums</a></li> 
 
    <li><a href='/nl/gezichtsverzorging/aanbod'>Gezichtsverzorging</a></li> 
 
    <li class='active'><a href='/nl/haarverzorging'>Haarverzorging</a><ul> 
 
     <li class='first'><a href='/nl/haarkleuring-kleurshampoo/aanbod'>Haarkleuring & kleurshampoo</a></li> 
 
     <li><a href='/nl/haarolielotion/aanbod'>Haarolie/lotion</a></li> 
 
     <li><a href='/nl/shampoo-conditioner/aanbod'>Shampoo & conditioner</a></li> 
 
     <li><a href='/nl/haargelspraymousse/aanbod'>Haargel/spray/mousse</a></li> 
 
     <li class='last'><a href='/nl/anti-luizenproducten/aanbod'>Anti-luizenproducten</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/hand-en-voetverzorging/aanbod'>Hand- en voetverzorging</a></li> 
 
    <li class='active'><a href='/nl/huidproducten'>Huidproducten</a><ul> 
 
     <li class='first'><a href='/nl/bodylotions-huidolien/aanbod'>Bodylotions & huidoliën</a></li> 
 
     <li><a href='/nl/hydrolaten/aanbod'>Hydrolaten</a></li> 
 
     <li class='last'><a href='/nl/massageolie/aanbod'>Massageolie</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/hygiene-2'>Hygiëne</a><ul> 
 
     <li class='first'><a href='/nl/lichaamshygiene/aanbod'>Lichaamshygiëne</a></li> 
 
     <li class='last'><a href='/nl/vrouwelijke-hygiene/aanbod'>Vrouwelijke hygiëne</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/mondhygiene'>Mondhygiëne</a><ul> 
 
     <li class='first'><a href='/nl/extra-mondverzorging/aanbod'>Extra mondverzorging</a></li> 
 
     <li class='last'><a href='/nl/tandpasta/aanbod'>Tandpasta</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/natuurcosmetica/aanbod'>Natuurcosmetica</a></li> 
 
    <li><a href='/nl/therapeutische-zalven-sprays/aanbod'>Therapeutische zalven & sprays</a></li> 
 
    <li class='active'><a href='/nl/verzorging-voor-de-man'>Verzorging voor de man</a><ul> 
 
     <li class='first'><a href='/nl/douche-deo-man/aanbod'>Douche & deo man</a></li> 
 
     <li><a href='/nl/gelaatsverzorging-man/aanbod'>Gelaatsverzorging man</a></li> 
 
     <li class='last'><a href='/nl/scheergerei-aftershave/aanbod'>Scheergerei & aftershave</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='last'><a href='/nl/zonneproducten/aanbod'>Zonneproducten</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/speelgoed-schoolgerei'>Speelgoed & Schoolgerei</a><ul> 
 
    <li class='active'><a href='/nl/schoolgerei'>Schoolgerei</a><ul> 
 
     <li class='last'><a href='/nl/brooddozen-drinkflessen/aanbod'>Brooddozen & drinkflessen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/knutselen'>Knutselen</a><ul> 
 
     <li class='last'><a href='/nl/boetseren-verven/aanbod'>Boetseren & verven </a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/verkleden-poppenkast/aanbod'>Verkleden & poppenkast</a></li> 
 
    <li><a href='/nl/muziekinstrumenten/aanbod'>Muziekinstrumenten</a></li> 
 
    <li><a href='/nl/puzzels/aanbod'>Puzzels</a></li> 
 
    <li><a href='/nl/poppen-toebehoren/aanbod'>Poppen & toebehoren</a></li> 
 
    <li class='active'><a href='/nl/miniatuurspeelgoed-figuren'>Miniatuurspeelgoed & figuren </a> 
 
     <ul> 
 
      <li class='first last'><a href='/nl/miniatuur-sprookjes-figuren/aanbod'>Miniatuur sprookjes figuren </a></li> 
 
     </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/houten-speelgoed'>Houten speelgoed</a><ul> 
 
     <li class='first'><a href='/nl/kinderen-houten-speelgoed/aanbod'>Kinderen houten speelgoed</a></li> 
 
     <li><a href='/nl/voertuigen-knikkerbanen/aanbod'>Voertuigen & knikkerbanen</a></li> 
 
     <li class='last'><a href='/nl/baby-houten-speelgoed/aanbod'>Baby houten speelgoed</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/denkspelletjes/aanbod'>Denkspelletjes</a></li> 
 
    <li><a href='/nl/juweeltjes-accessoires/aanbod'>Juweeltjes & accessoires</a></li> 
 
    <li class='last active'><a href='/nl/buitenspeelgoed'>Buitenspeelgoed</a><ul> 
 
     <li class='first'><a href='/nl/gezelschapsspellen-buiten/aanbod'>Gezelschapsspellen buiten </a></li> 
 
     <li><a href='/nl/zandbakspeelgoed/aanbod'>Zandbakspeelgoed</a></li> 
 
     <li class='active'><a href='/nl/onderzoek-exploreren'>Onderzoek & exploreren </a> 
 
      <ul> 
 
       <li class='first'><a href='/nl/natuur/aanbod'>Natuur </a></li> 
 
       <li class='last'><a href='/nl/technisch/aanbod'>Technisch </a></li> 
 
      </ul> 
 
     </li> 
 
     <li><a href='/nl/waterspelen/aanbod'>Waterspelen</a></li> 
 
     <li class='last'><a href='/nl/rollend-speelgoed/aanbod'>Rollend speelgoed</a></li> 
 
    </ul> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/superfoods-raw-foods'>Superfoods & Raw Foods</a><ul> 
 
    <li class='first active'><a href='/nl/zoete-hartige-snacks-superfood'>Zoete & hartige snacks superfood</a><ul> 
 
     <li class='first last'><a href='/nl/zoet/aanbod'>Zoet</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/superfruit/aanbod'>Superfruit</a></li> 
 
    <li><a href='/nl/gezonde-vetten/aanbod'>Gezonde vetten</a></li> 
 
    <li><a href='/nl/rauwe-cacao/aanbod'>Rauwe cacao</a></li> 
 
    <li><a href='/nl/mixen-in-poeder/aanbod'>Mixen in poeder</a></li> 
 
    <li class='active'><a href='/nl/superfood'>Superfood</a><ul> 
 
     <li><a href='/nl/pitten-noten-zaden/aanbod'>Pitten, Noten & Zaden</a></li> 
 
     <li><a href='/nl/algen-greens-bijenpollen/aanbod'>Algen, Greens & Bijenpollen</a></li> 
 
     <li class='last'><a href='/nl/natuurlijke-zoetmiddelen/aanbod'>Natuurlijke Zoetmiddelen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/dranken-soepen-superfood'>Dranken & soepen superfood</a><ul> 
 
     <li><a href='/nl/poeders/aanbod'>Poeders</a></li> 
 
     <li><a href='/nl/supersappen/aanbod'>Supersappen</a></li> 
 
     <li class='last'><a href='/nl/superconcentraten/aanbod'>Superconcentraten</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='last'><a href='/nl/boeken-rawfood/aanbod'>Boeken rawfood</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/thee-koffie'>Thee & Koffie</a><ul> 
 
    <li class='first active'><a href='/nl/kruideninfusie'>Kruideninfusie </a> 
 
     <ul> 
 
      <li class='first'><a href='/nl/kruideninfusie-in-builtjes/aanbod'>Kruideninfusie in builtjes</a></li> 
 
      <li class='last'><a href='/nl/mixen-losse-kruiden/aanbod'>Mixen & losse kruiden</a></li> 
 
     </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/koffie'>Koffie </a> 
 
     <ul> 
 
      <li class='first'><a href='/nl/koffie-bonen/aanbod'>Koffie Bonen</a></li> 
 
      <li><a href='/nl/koffie-gemalen/aanbod'>Koffie Gemalen</a></li> 
 
      <li><a href='/nl/koffie-accessoires/aanbod'>Koffie Accessoires</a></li> 
 
      <li class='last'><a href='/nl/koffiepads/aanbod'>Koffiepads</a></li> 
 
     </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/thee-1'>Thee</a><ul> 
 
     <li class='first'><a href='/nl/thee-in-builtjes/aanbod'>Thee in builtjes </a></li> 
 
     <li><a href='/nl/losse-thee/aanbod'>Losse thee</a></li> 
 
     <li class='last'><a href='/nl/thee-accessoires/aanbod'>Thee accessoires</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href='/nl/granenkoffiechicorei-koffievervangers/aanbod'>Granenkoffie/chicorei & koffievervangers </a></li> 
 
    <li class='last'><a href='/nl/vruchtenthee/aanbod'>Vruchtenthee</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/keuken-kruiden'>Keuken & Kruiden</a><ul> 
 
    <li class='first active'><a href='/nl/kruiden-specerijen'>Kruiden & specerijen</a><ul> 
 
     <li class='first'><a href='/nl/anderen-kruiden-1/aanbod'>Anderen kruiden </a></li> 
 
     <li><a href='/nl/keukenkruiden-2/aanbod'>Keukenkruiden</a></li> 
 
     <li class='last'><a href='/nl/specerijen/aanbod'>Specerijen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/olien-vetten-azijn'>Oliën, vetten & azijn </a> 
 
     <ul> 
 
      <li class='first'><a href='/nl/azijn/aanbod'>Azijn</a></li> 
 
      <li><a href='/nl/plantaardige-olien/aanbod'>Plantaardige oliën</a></li> 
 
      <li class='last'><a href='/nl/plantaardige-vetten/aanbod'>Plantaardige vetten</a></li> 
 
     </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/sauzen'>Sauzen</a><ul> 
 
     <li class='first'><a href='/nl/koude-sauzen/aanbod'>Koude sauzen</a></li> 
 
     <li><a href='/nl/plantaardige-romen-kokosmelk/aanbod'>Plantaardige romen & kokosmelk</a></li> 
 
     <li class='last'><a href='/nl/warme-sauzen/aanbod'>Warme sauzen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='active'><a href='/nl/smaakmakers'>Smaakmakers</a><ul> 
 
     <li class='first'><a href='/nl/bouillons/aanbod'>Bouillons</a></li> 
 
     <li><a href='/nl/kruidenzout/aanbod'>(Kruiden)zout</a></li> 
 
     <li class='last'><a href='/nl/sojasauzen-oosterse-specialiteiten/aanbod'>Sojasauzen & oosterse specialiteiten</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='last'><a href='/nl/zoetmiddelen-4/aanbod'>Zoetmiddelen</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/glutenvrije-voeding'>Glutenvrije voeding</a><ul> 
 
    <li class='first'><a href='/nl/bakbenodigdheden-meelwaren/aanbod'>Bakbenodigdheden & meelwaren</a></li> 
 
    <li><a href='/nl/beschuiten-crackers/aanbod'>Beschuiten & crackers</a></li> 
 
    <li><a href='/nl/brood-gebak-2/aanbod'>Brood & gebak</a></li> 
 
    <li><a href='/nl/broodbeleg-2/aanbod'>Broodbeleg</a></li> 
 
    <li><a href='/nl/chips-zoutjes/aanbod'>Chips & zoutjes</a></li> 
 
    <li><a href='/nl/cornflakes-muesli/aanbod'>Cornflakes & muesli</a></li> 
 
    <li><a href='/nl/deegwaren-sauzen/aanbod'>Deegwaren & sauzen</a></li> 
 
    <li class='last'><a href='/nl/koeken-repen/aanbod'>Koeken & repen</a></li> 
 
</ul> 
 
</li> 
 
<li class='active'><a href='/nl/dieetvoeding'>Dieetvoeding</a><ul> 
 
    <li><a href='/nl/dieetvoeding-1/aanbod'>Dieetvoeding</a></li> 
 
    <li class='active'><a href='/nl/suikerarm'>Suikerarm</a><ul> 
 
     <li class='first'><a href='/nl/broodbeleg-1/aanbod'>Broodbeleg</a></li> 
 
     <li><a href='/nl/chocolade-1/aanbod'>Chocolade</a></li> 
 
     <li><a href='/nl/koekjes-snoep/aanbod'>Koekjes & snoep</a></li> 
 
     <li><a href='/nl/peperkoek-fructose/aanbod'>Peperkoek fructose</a></li> 
 
     <li class='last'><a href='/nl/zoetmiddelen-1/aanbod'>Zoetmiddelen</a></li> 
 
    </ul> 
 
    </li> 
 
    <li class='last'><a href='/nl/zoutarm/aanbod'>Zoutarm</a></li> 
 
</ul> 
 
</li>

現在我想創建一個新的方法,其中的標記會像這個例子: http://www.bootply.com/DglnYJTSKA#

我hav現在線索如何做到這一點,任何人都可以幫助我嗎?輸出必須成爲成才這樣的:

<div class="container-fluid"> 
 
    <div class="row"> 
 
    <div class="col-md-2"> 
 
     
 
     <div id="MainMenu"> 
 
     <div class="list-group panel"> 
 
      <a href="#demo3" class="list-group-item list-group-item-success" data-toggle="collapse" data-parent="#MainMenu">Item 3</a> 
 
      <div class="collapse" id="demo3"> 
 
      <a href="#SubMenu1" class="list-group-item" data-toggle="collapse" data-parent="#SubMenu1">Subitem 1 <i class="fa fa-caret-down"></i></a> 
 
      <div class="collapse list-group-submenu" id="SubMenu1"> 
 
       <a href="#" class="list-group-item" data-parent="#SubMenu1">Subitem 1 a</a> 
 
       <a href="#" class="list-group-item" data-parent="#SubMenu1">Subitem 2 b</a> 
 
       <a href="#SubSubMenu1" class="list-group-item" data-toggle="collapse" data-parent="#SubSubMenu1">Subitem 3 c <i class="fa fa-caret-down"></i></a> 
 
       <div class="collapse list-group-submenu list-group-submenu-1" id="SubSubMenu1"> 
 
       <a href="#" class="list-group-item" data-parent="#SubSubMenu1">Sub sub item 1</a> 
 
       <a href="#" class="list-group-item" data-parent="#SubSubMenu1">Sub sub item 2</a> 
 
       </div> 
 
       <a href="#" class="list-group-item" data-parent="#SubMenu1">Subitem 4 d</a> 
 
      </div> 
 
      <a href="javascript:;" class="list-group-item">Subitem 2</a> 
 
      <a href="javascript:;" class="list-group-item">Subitem 3</a> 
 
      </div> 
 
      <a href="#demo4" class="list-group-item list-group-item" data-toggle="collapse" data-parent="#MainMenu">Item 4</a> 
 
      
 
      <a href="#demo5" class="list-group-item list-group-item" data-toggle="collapse" data-parent="#MainMenu">Item 5</a> 
 
      <div class="collapse" id="demo5"> 
 
      <a href="#" class="list-group-item">Subitem 1</a> 
 
      <a href="" class="list-group-item">Subitem 2</a> 
 
      <a href="" class="list-group-item">Subitem 3</a> 
 
      </div> 
 
     </div> 
 
     </div> 
 
     
 
    </div> 
 
    </div> 
 
</div>

+0

我想,這是你的工作,弄清楚它應該如何完成。看起來像標準的字符串建設。和以前一樣,只有格式略有不同。你面臨的問題是什麼? _替代.. plz修理我的工作.._ –

回答

0

斯特凡,窺視TagBuilder()函數。下面顯示的是引導菜單的menubuilder。您將無法直接使用代碼,因爲它具有未列出函數的標註,但它應該讓您瞭解如何從標記對象構建菜單,添加屬性和類。

 public static MvcHtmlString StaticMenu(this HtmlHelper helper, string activePage, IPrincipal user) 
    { 
     // Build four containing divs 
     var navbarOuter = new TagBuilder("div"); 
     navbarOuter.AddCssClass("navbar navbar-inverse"); 
     var navbarInner = new TagBuilder("div"); 
     navbarInner.AddCssClass("navbar-inner"); 
     var container = new TagBuilder("div"); 
     container.AddCssClass("container-fluid"); 
     var menudiv = new TagBuilder("div"); 
     menudiv.AddCssClass("nav"); 

     var home = IconActionLink(helper, "icon-home icon-white", "Home", "Index", "Home", null, null); 
     var about = IconActionLink(helper, "icon-info-sign icon-white", "About", "About", "Home", null, null); 
     var contact = IconActionLink(helper, "icon-briefcase icon-white", "Contact", "Contact", "Home", null, null); 

     var report = new TagBuilder("a"); 
     var reportUrl = (string)HttpContext.Current.Application["ReportURL"]; 
     report.MergeAttribute("href", reportUrl.Length > 0 ? reportUrl : "#"); 
     if (reportUrl.Length > 0) report.MergeAttribute("target", "_blank"); 
     var reptIcon = new TagBuilder("i"); 
     reptIcon.MergeAttribute("class", "icon-print icon-white"); 
     report.InnerHtml = reptIcon + " Reports"; 

     var menuItems = new TagBuilder("ul"); 
     menuItems.AddCssClass("nav pull-left"); 

     //Home Menu 
     var menuHome = new TagBuilder("li") { InnerHtml = home.ToHtmlString() }; 
     if (activePage == "Home") menuHome.AddCssClass("active"); 

     TagBuilder theMenu; 
     if (user.Identity.IsAuthenticated) 
     { 
      //Menus Menu 
      var menuService = ServiceLocator.Current.GetInstance<IMenuService>().GetMainMenu(); 
      theMenu = new TagBuilder("li") { InnerHtml = GenerateMenu(helper, menuService, user, activePage).ToString() }; 
      about = null; 
      contact = null; 
     } 
     else 
     { 
      theMenu = null; 
     } 

     //About Menu 
     var menuAbout = (about != null) ? new TagBuilder("li") { InnerHtml = about.ToHtmlString() } : null; 
     if (menuAbout != null && activePage == "About") menuAbout.AddCssClass("active"); 

     //Contact Menu 
     var menuContact = (contact != null) ? new TagBuilder("li") { InnerHtml = contact.ToHtmlString() } : null; 
     if (menuContact != null && activePage == "Contact") menuContact.AddCssClass("active"); 

     //Report Menu 
     var menuReport = new TagBuilder("li") { InnerHtml = report.ToString() }; 

     menuItems.InnerHtml = menuHome.ToString(); 
     menuItems.InnerHtml += (menuAbout != null) ? menuAbout.ToString() : ""; 
     menuItems.InnerHtml += (menuContact != null) ? menuContact.ToString() : ""; 
     menuItems.InnerHtml += (theMenu != null) ? theMenu.ToString() : ""; 
     menuItems.InnerHtml += menuReport; 

     // nest our divs 
     menudiv.InnerHtml += menuItems; 
     container.InnerHtml = menudiv.ToString(TagRenderMode.Normal); 
     navbarInner.InnerHtml = container.ToString(TagRenderMode.Normal); 
     navbarOuter.InnerHtml = navbarInner.ToString(TagRenderMode.Normal); 

     return new MvcHtmlString(navbarOuter.ToString(TagRenderMode.Normal)); 
    } 

祝你好運。