2011-02-24 4 views
3

내가 가지고로 설정 라우팅은 다음과 같습니다빵 부스러기에 SiteMapPath 및 SEO 친화적 인 라우팅

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으로 이동하면 홈 breadcru mb 노드가 나타나지 않습니다. 내가 뭘 놓치고 있니? 다음과 같이

UPDATE

나는 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 컨트롤 자체는 마스터 페이지에 있습니다. 다음과 같이

enter image description here

답변

1

아마 당신은 당신의 사이트 맵 파일을 변경해야합니다

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/" title="Global Site Name or Welcome Message" description="Home"> 
     <siteMapNode url="~/Home" title="Home" description="" /> 
     <siteMapNode url="~/About" title="About" description="About"> 
      <siteMapNode url="~/History" title="History" 
       description="History" /> 
     </siteMapNode> 
    </siteMapNode> 
</siteMap> 

을하고 SiteMapDataSource에에서 당신은 ShowStartingNode="false"을 설정해야하고 나는이 ...

한 번에 두 가지 문제를 해결할 수 있다고 생각

참고 : 물론이 변경 사항은 global.asax 파일 (VB)에서 변경해야합니다.

RouteTable.Routes.MapPageRoute("Home0", "", "~/Default.aspx", True) 
RouteTable.Routes.MapPageRoute("Home1", "Home", "~/Default.aspx", True) 

희망이 도움이 ...

+0

시도해 주셔서 감사합니다 :) – IrishChieftain

관련 문제