首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面包屑SiteMapPath和SEO友好路由

面包屑SiteMapPath和SEO友好路由
EN

Stack Overflow用户
提问于 2011-02-24 01:58:34
回答 1查看 1.9K关注 0票数 3

我的路由设置如下:

代码语言:javascript
复制
void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("", "Home", "~/Default.aspx");
    ......
}

我正在使用SiteMapPath控件实现面包屑:

代码语言:javascript
复制
<asp:SiteMapPath ID="SiteMapPath1" CssClass="breadCrumbs" runat="server">
</asp:SiteMapPath>

Web.sitemap设置如下:

代码语言:javascript
复制
<?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而不是mysite.com/default.aspx时,就不会出现Home面包屑节点。我遗漏了什么?

更新

通过更新Web.sitemap,我设法使"Home“节点显示如下:

代码语言:javascript
复制
<?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控件本身位于母版页中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 08:26:25

也许您应该按以下方式更改站点地图文件:

代码语言:javascript
复制
<?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>

从站点地图数据源,您应该设置ShowStartingNode="false",我认为这可以同时解决两个问题.

注意:当然,这将要求您在global.asax文件(VB)中进行此更改:

代码语言:javascript
复制
RouteTable.Routes.MapPageRoute("Home0", "", "~/Default.aspx", True)
RouteTable.Routes.MapPageRoute("Home1", "Home", "~/Default.aspx", True)

希望这能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5099567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档