Aquí podría ser tu PUBLICIDAD


Mapas del sitio ASP.NET

votos
31

¿Alguien tiene experiencia en la creación de proveedores de mapas de sitios ASP.NET basados ​​en SQL ?

Tengo el archivo XML predeterminado que web.sitemapfunciona correctamente con mis controles Menu y SiteMapPath , pero necesitaré una forma para que los usuarios de mi sitio creen y modifiquen páginas dinámicamente.

También debo vincular los permisos de visualización de páginas al ASP.NETsistema de membresía estándar .

Publicado el 01/08/2008 a las 16:50
fuente por usuario Zack Peterson
En otros idiomas...        العربية       

1 respuestas

votos
11

La versión Jeff Prosise de la revista MSDN funciona bastante bien, pero tiene algunos defectos:

AddNode se asusta con enlaces a sitios externos en su menú (www.google.com, etc.)

Aquí está mi solución BuildSiteMap():

SiteMapNode node = GetSiteMapNodeFromReader(reader);
string url = node.Url;
if (url.Contains(":"))
{
    string garbage = Guid.NewGuid().ToString();  // SiteMapNode needs unique URLs
    node.Url = "~/dummy_" + garbage + ".aspx";
    AddNode(node, _root);
    node.Url = url;
}
else
{
    AddNode(node, _root);
}

SQLDependencyEl almacenamiento en caché es genial, pero si no desea realizar un viaje al DB cada vez que su menú se carga (para verificar si la dependencia ha cambiado) y sus menús no cambian muy a menudo, ¿por qué no usarlos HttpRuntime.Cacheen su lugar?

public override SiteMapNode RootNode
{
    get
    {
        SiteMapNode temp = (SiteMapNode)HttpRuntime.Cache["SomeKeyName"];
        if (temp == null)
        {
            temp = BuildSiteMap();
            HttpRuntime.Cache.Insert("SomeKeyName", temp, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
        }
        return temp;
    }
}
Respondida el 23/09/2008 a las 11:41
fuente por usuario Kelly Adams


Aquí podría ser tu PUBLICIDAD