2011-01-17 34 views
2

Ich habe eine Web.sitemap hinzugefügt und die SiteMapNode hinzugefügt. Außerdem habe ich das Steuerelement asp:SiteMapPath auf der Webseite platziert, aber beim Laufen wird nichts angezeigt.SiteMapPath wird nicht angezeigt

Hier ist der Code der meine SiteMapPath Kontrolle:

<asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana" Font-Size="0.8em"> 
    <CurrentNodeStyle ForeColor="#333333" /> 
    <NodeStyle Font-Bold="True" ForeColor="#666666" /> 
    <PathSeparatorStyle Font-Bold="True" ForeColor="#1C5E55" /> 
    <RootNodeStyle Font-Bold="True" ForeColor="#1C5E55" /> 
</asp:SiteMapPath> 

Does not SiteMapPath Aufnahmesteuerung Web.sitemap automatisch? oder irgendetwas anderes, wenn es verlassen wird? Falls Web.sitemap überprüft werden soll, here it is.

+0

Fertig-Platzierte in der oben genannten Post – Cipher

Antwort

2

Haben Sie den XML SiteMap-Provider in Ihrer Web.config konfiguriert?

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
     <siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
      <providers> 
       <clear /> 
       <add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="Web.sitemap" /> 
      </providers> 
     </siteMap> 
    </system.web> 
</configuration> 

Auch Setup der Steuerung:

<asp:SiteMapPath runat="server" RenderCurrentNodeAsLink="true" SkipLinkText=""> 
... 
</asp:SiteMapPath> 
+0

Es beginnt gibt diese Fehler-Sreenshot: http : //i.imgur.com/7dJjh.jpg – Cipher

+0

@Cipher: Welche Version von .NET verwenden Sie? 2.0/3.5 oder 4.0? – abatishchev

+0

.NET Framework 4.0 - Visual Studio 2010. Ziel-Framework 3.5 – Cipher

3

ich auch auf dieses Problem gestoßen. Eine sehr einfache Webseite schreiben.

Das Problem war, dass Seiten, die nicht in der Web.sitemap sind, nicht in den Breadcrumbs enthalten sind. Siehe ersten Hinweis auf http://msdn.microsoft.com/en-us/library/ms178418(v=vs.100).aspx. Ich hatte alle Seiten in Web.sitemap aufgelistet, aber mit der Erweiterung .aspx. Zum Beispiel:

<siteMapNode url="~/Contact.aspx" title="Contact" description="Contact information" /> 

Wenn ich die Seite in einem Browser besucht, wurde die URL http://localhost/Contact "gereinigt". Bedeutung, ohne die Erweiterung .aspx. Ich weiß nicht, welches Modul dafür verantwortlich ist. Als ich den Eintrag in der Web.sitemap durch Entfernen von ASPX änderte, wurden die Breadcrumbs auf der Seite angezeigt. So sieht die Zeile wie:

<siteMapNode url="~/Contact" title="Contact" description="Contact information" /> 

bearbeiten: Das Paket verantwortlich für das URL-Rewriting des FriendlyUrls Paket ist (http://www.nuget.org/packages/Microsoft.AspNet.FriendlyUrls)