public static string Menu(this HtmlHelper helper, string siteMapProviderName) { var provider = SiteMap.Providers[siteMapProviderName]; return NodesAsHtml(provider.RootNode); } private static string NodesAsHtml(SiteMapNode node) { var writer = new StringWriter(); if (node.HasChildNodes) { if (!String.IsNullOrEmpty(node.Title)) { writer.Write("{0}", node.Title); } writer.Write(""); } else { writer.Write("{1}", node.Url, node.Title); } return writer.ToString(); }