2013-05-20 3 views
0

Я пытаюсь построить два unordered lists с помощью tagbuilder.Сборка mulitple неупорядоченных списков с использованием tagbuilder

public static MvcHtmlString GenerateMultipleUL<T>(this HtmlHelper html, IGridable<T> model) 
     where T : class 
      { 
      int itemsCount = model.RowModels.Count(); 
      TagBuilder ulTag = new TagBuilder("ul");     
      foreach(var indexedItem in model.RowModels.Select((p, i)=> new {item = p, Index = i})) 
       { 
        if (itemsCount/2 == indexedItem.Index) 
        { //create a new Un ordered List 
ulTag = new TagBuilder("ul"); // This resets the old values with new ones but i want to close the old UL and create a new one. 
        } 
        TagBuilder liTag = new TagBuilder("li"); 
         .......... 
        ulTag.InnerHtml += liTag; 
       } 
      return new MvcHtmlString(ulTag.ToString()); 
      } 
+0

Существует не вопрос здесь ... – ammills01

+0

если условие выполнено, я хочу, чтобы закрыть существующий неупорядоченный список и создать новый неупорядоченный список. Я обновил вопрос. – BumbleBee

ответ

2

Если я понять ваш вопрос, вы должны использовать отдельную StringBuilder для хранения сгенерированного HTML для вывода. Это даст вам место для хранения результатов вашего первого UL, прежде чем продолжить создание второго.

StringBuilder output = new StringBuilder(); 
TagBuilder ulTag = new TagBuilder("ul"); 
foreach (var item in model) 
{ 
    if (testCondition(item)) 
    { 
     output.Append(ulTag.ToString()); 
     ulTag = new TagBuilder("ul"); 
    } 
    ... 
} 
output.Append(ulTag.ToString(); 
return output.ToString();