为了实现整站的面包屑导航:
您当前的位置:网站首页>新闻中心>新闻栏目>新闻分栏>新闻名称
为了这个功能,GOOGLE了一整天,搜索除了一堆类似"web.sitemap 和SiteMapPath的出现...很好啊!只要编写web.sitemap就可以很好的解决这样的问题....." 等等的废话.让我也知道了,SiteMapPath是靠编写web.sitemap来实现功能,这个宇宙人都知道的大道理(几乎每篇文章都写了些这种没用的玩意,也没个例外的).if(我们用SiteMapPath)
{
问题1:web.sitemap 里如果是定义了:
<siteMapNode url="~/" title="网站首页"  description="">
                <siteMapNode url="~/product/list.aspx" title="产品列表"  description="" /></siteMapNode>
那么访问~/product/list.aspx就会显示  网站首页>产品列表
但是访问~/product/list.aspx?id=1 前面的工作就丝毫没点意思,因为他什么都没有,大家肯定会说.你在添加一个 <siteMapNode url="~/product/list.aspx?id=1" title="产品列表1"  description="" />不就有了吗?
于是我又添加了一个<siteMapNode url="~/product/list.aspx?id=1" title="产品列表1"  description="" /> 然后发现还有一亿个id,那么我就只能在有生之年教会我的孙子怎么添加siteMapNode来解决这个问题.想到这里,我不禁佩服我的智慧.但是我又想,CSDN说不定还有比我更聪明的办法.于是,前来求助..问题2:假设问题1得到了解决,我们用程序来生成XML文件web.sitemap了,那么假设一个站点,还有新闻栏目,还有其他的跟数据库无关的.aspx页,比如登录页,岂不还是要手动输入? 如果改变了呢?如果添加了呢?
如果成千上万条新闻,产品,我都要面包屑导航,那这个XML文件会变大,是不是会影响效率呢?}
else if(我们不用SiteMapPath)
{
您当前的位置:网站首页>新闻中心>新闻栏目>新闻分栏>新闻名称,应该怎么做?}

解决方案 »

  1.   

    自定义的超链接
    无敌<a href=""></a>
      

  2.   

    我不知道你是怎么实现的
    像这种~/product/list.aspx?id=1你只要写一个~/product/list.aspx 就可以了他会自动识别的
    反正我做的机时这样的要不行
    参考
      

  3.   

    我的意思是,自动传给~/product/list.aspx 不同的?id的不同参数..如何来做?
      

  4.   

    如果用SiteMapPath 的话,我在站点地图中设置 newinfo.aspx 为"新闻内容"的节点后.能否动态指定 newinfo.aspx?id=3等等的节点呢
      

  5.   

    前几天我也问这个问题的,特别是无限极新闻类,这种问题很严重
    比如4级菜单线面的一个文章如下;
    1及--2及--3及--4及--文章标题
    3级菜单线面的一个文章如下;
    1及--2及--3及--文章标题
    它们是同一个页面,比如都叫A.ASPX,那怎么显示出这个效果?
      

  6.   

    看看这个
    http://weblogs.asp.net/jgaylord/archive/2008/06/04/adding-querystring-parameters-to-the-sitemapnode.aspx
      

  7.   

    可以动态修改title的!SiteMap.SiteMapResolve -= new SiteMapResolveEventHandler(this.ExpandForumPaths);
    SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
    currentNode.ParentNode.Title = title;
    currentNode.ParentNode.Url = url;
    return currentNode;
      

  8.   

    page_load中还要加入:SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ExpandForumPaths);