Me he estado volviendo loco tratando de descubrir por qué no puedo hacer funcionar el ASP.NET MVCSiteMap.ASP.NET MVC SiteMap
He descargado la última versión de CodePlex (versión 2.3) y configuré las referencias como se describe en CodePlex. He descargado los DisplayTemplates y configurar un archivo de Mvc.sitemap básica:
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0" enableLocalization="true">
<mvcSiteMapNode title="Dashboard" controller="Admin" action="Index" changeFrequency="Always" updatePriority="Normal">
<mvcSiteMapNode title="Users" controller="Users" action="Index" />
<mvcSiteMapNode title="Reports" controller="Reports" action="Index" />
</mvcSiteMapNode>
</mvcSiteMap>
Cuando se utiliza el asistente de HTML para generar un menú básico, aparece un espacio en blanco de salida:
<%: Html.MvcSiteMap().Menu() %>
En el MenuHelperModel.ascx DisplayTemplate, estoy emitiendo el número de nodos:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl`1[ [MvcSiteMapProvider.Web.Html.Models.MenuHelperModel,MvcSiteMapProvider] ]" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%@ Import Namespace="MvcSiteMapProvider.Web.Html.Models" %>
<%: Model.Nodes.Count %>
<ul>
<% foreach (var node in Model.Nodes) { %>
<li><%=Html.DisplayFor(m => node)%>
<% if (node.Children.Any()) { %>
<%=Html.DisplayFor(m => node.Children)%>
<% } %>
</li>
<% } %>
</ul>
la salida resultante es:
0
No puedo entender lo que estoy haciendo mal. No recibo ningún error, y estoy usando el archivo Mvc.sitemap proporcionado por el sitio del proyecto CodePlex con algunas modificaciones menores para mis acciones/controladores.
NOTA: También he descargado el proyecto de muestra, pero no compilará para mí y el archivo de sitemap que se está utilizando es demasiado complicado para mí en esta etapa temprana de mi comprensión de cómo usarlo.
Cualquier ayuda es muy apreciada.