0
我已经为asp.net MVC构建了一个小型中继器HtmlHelper,我希望能够递归构建树型列表。因此,如果<T>
有任何IEnumerable
的孩子,我想将它们添加为嵌入式列表。ASP.NET MVC中继器帮助
这里是我有那么对于它创建了一个平坦的列表...
public static MvcHtmlString Repeater<T>(this HtmlHelper html, IEnumerable<T> items,
Func<T, HelperResult> itemTemplate,
Func<string, HelperResult> containerTemplate,
Func<string, HelperResult> emptyTemplate)
{
if (items == null)
return MvcHtmlString.Create(HttpContext.Current.Server.HtmlDecode(emptyTemplate("No Results").ToHtmlString()));
if (items.Count() == 0)
return MvcHtmlString.Create(HttpContext.Current.Server.HtmlDecode(emptyTemplate("No Results").ToHtmlString()));
StringBuilder sb = new StringBuilder();
foreach (var item in items)
{
string content = itemTemplate(item).ToHtmlString();
//Here I would want to append the children to 'content' using containerTemplate and itemTemplate....
sb.Append(HttpContext.Current.Server.HtmlDecode(content));
}
return MvcHtmlString.Create(HttpContext.Current.Server.HtmlDecode(containerTemplate(sb.ToString()).ToHtmlString()));
}
任何帮助将不胜感激。
提前欢呼。
Gifster
谢谢,但它会被T的任何IEnumerable的孩子,但我想我将不得不去与此中继... – Andy 2011-02-02 19:47:01