Comparteix a través de


XmlSiteMapProvider.BuildSiteMap Método

Definición

Carga la información del mapa del sitio de un archivo XML y lo crea en memoria.

public:
 override System::Web::SiteMapNode ^ BuildSiteMap();
public override System.Web.SiteMapNode BuildSiteMap ();
override this.BuildSiteMap : unit -> System.Web.SiteMapNode
Public Overrides Function BuildSiteMap () As SiteMapNode

Devoluciones

SiteMapNode

Devuelve el nodo SiteMapNode raíz de la estructura de navegación del mapa del sitio.

Excepciones

No se ha inicializado XmlSiteMapProvider correctamente.

o bien Se ha analizado un siteMapFile para un <siteMapNode> que no es único.

o bien El archivo especificado por siteMapFile no tiene la extensión de nombre de archivo .sitemap.

o bien El archivo especificado por siteMapFile no existe.

o bien Un proveedor configurado en provider de <siteMapNode> devuelve un nodo raíz null.

Se ha especificado siteMapFile pero la ruta de acceso queda fuera de la estructura de directorios actual de la aplicación.

Se ha producido un error al cargar el archivo de configuración.

o bien El elemento superior del archivo de configuración no es named <siteMap>.

o bien Existe más de un nodo superior en el archivo de configuración.

o bien Un elemento secundario de <siteMap> tiene un nombre distinto de <siteMapNode>.

o bien Se ha analizado un atributo inesperado para <siteMapNode>.

o bien Los subelementos se anidan bajo <siteMapNode> donde se establece provider.

o bien roles de <siteMapNode> contienen caracteres que no son válidos.

o bien Se ha analizado un url para un <siteMapNode> que no es único.

o bien Se ha encontrado un nodo SiteMapNode con un valor duplicado para Key.

o bien Se ha especificado la propiedad ResourceKey o Title en el nodo SiteMapNode o un atributo custom definido para el nodo contiene una expresión de recurso explícita.

o bien Se ha aplicado una expresión de recurso explícita a la propiedad Title o Description o a un atributo custom de un nodo SiteMapNode pero la información explícita no era válida.

o bien Se ha producido un error al analizar la propiedad Url de un nodo SiteMapNode.

No se puede encontrar un proveedor con nombre en la colección de proveedores del mapa del sitio actual.

<siteMapNode> que hace referencia a un archivo de mapa del sitio contiene una cadena vacía para siteMapFile.

Un siteMapFile de un <siteMapNode> utiliza una ruta de acceso física.

o bien Se ha producido un error al intentar analizar la ruta de acceso virtual al archivo especificado en siteMapFile.

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear una nueva instancia de la clase e inicializar para compilar un mapa del sitio a partir XmlSiteMapProvider de datos XML.

<%@ Page Language="c#" %>  
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
 <SCRIPT runat="server">  
 private void Page_Load(object sender, System.EventArgs e)  
 {  
     // Create an instance of the XmlSiteMapProvider class.  
     XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();  
     NameValueCollection providerAttributes = new NameValueCollection(1);  
     providerAttributes.Add("siteMapFile","test.sitemap");  
     // Initialize the provider with a provider name and file name.  
     testXmlProvider.Initialize("testProvider", providerAttributes);  

     // The BuildSiteMap method is implicitly called when the   
     // RootNode property is accessed.  

     // Prints "/myvirtualdirectory/WebForm1.aspx"  
     Response.Write(testXmlProvider.RootNode.Url + "<BR>");  
     // Prints "/myvirtualdirectory/WebForm2.aspx"  
     Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");  
 }  

En el ejemplo de código anterior se usa un archivo XML que se encuentra en la raíz virtual de la ASP.NET aplicación. El archivo tiene el formato siguiente:

<siteMap>  
     <siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">  
         <siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>  
     </siteMapNode>  
 </siteMap>  

Comentarios

Se BuildSiteMap llama al método para cargar y compilar el mapa del sitio a partir de almacenamiento persistente.

Para obtener el comportamiento predeterminado cuando se habilita el recorte de seguridad, vea "Comentarios" en IsAccessibleToUser .

Una vez que el objeto analiza y carga los datos del mapa del sitio, todos los objetos y XmlSiteMapProvider SiteMapNode SiteMapNodeCollection colecciones cargados se hacen de solo lectura. Cuando analiza la propiedad de un archivo de mapa del sitio, convierte las direcciones URL relativas a la aplicación, así como las direcciones URL relativas, en rutas de acceso virtuales XmlSiteMapProvider Url absolutas de la aplicación.

se XmlSiteMapProvider suscribe a las notificaciones de cambio de archivo para el archivo .csv. Si se realiza algún cambio en el archivo .csv, se vuelve a cargar y se vuelve a generar la estructura del XmlSiteMapProvider mapa del sitio.

Se aplica a

Consulte también