次のようにルーティングを設定しました。
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "Home", "~/Default.aspx");
......
}
SiteMapPathコントロールを使用してブレッドクラムを実装しています。
<asp:SiteMapPath ID="SiteMapPath1" CssClass="breadCrumbs" runat="server">
</asp:SiteMapPath>
Web.sitemapは次のように設定されます。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="Home" title="Home" description="Home">
<siteMapNode url="~/About" title="About" description="About">
<siteMapNode url="~/History" title="History"
description="History" />
</siteMapNode>
</siteMapNode>
</siteMap>
私の問題は、mysite.com / default.aspxではなくmysite.comに移動すると、ホームブレッドクラムノードが表示されないことです。私は何が欠けていますか?
アップデート
次のようにWeb.sitemapを更新することで、「ホーム」ノードを表示することができました。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="Home" title="Home" description="Home">
<siteMapNode url="~/Default.aspx" title="" description="" />
<siteMapNode url="~/About" title="About" description="About">
<siteMapNode url="~/History" title="History"
description="History" />
</siteMapNode>
</siteMapNode>
</siteMap>
残っている唯一の問題は、パス区切り文字がmysite.comのホームページにまだ表示されていることです。
プログラムでホームページのセパレータを非表示にする方法はありますか?SiteMapPathコントロール自体はマスターページにあります。