查询sitemap的字符串参数

时间:2014-06-26 17:05:57

标签: asp.net sitemap querystringparameter sitemapprovider web.sitemap

我正在使用VWD 2010,ASP.NET和C#。我在另一个SO帖子中找到了如何执行此操作的指针。不幸的是,我无法让它发挥作用。

它指向的示例代码在这里: http://weblogs.asp.net/jgaylord/adding-querystring-parameters-to-the-sitemapnode

我已经为此包含了C#代码,但我似乎无法让程序认识到代码实际存在。我设置了永远不会被调用的断点 我将它放入web.config:

    <siteMap enabled="true">
      <providers>
        <clear/>
        <add name="ExtendedSiteMapProvider" type="Configuration.ExtendedSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true" />
<!--
        <add siteMapFile="Web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"/>
    -->    
      </providers>
    </siteMap>

注意 AspNetXmlSiteMapProvider 是如何被注释掉的。该名称在文件中没有出现在其他地方。然而,当我尝试运行我的程序时,我收到此错误消息:  在提供程序集合中不存在为defaultProvider指定的提供程序“AspNetXmlSiteMapProvider”。

如果我取消注释该行,程序将运行,但永远不会调用新代码。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是因为您没有指定defaultProvider,其默认默认为AspNetXmlSiteMapProvidelike you can see here

所以你必须像这样指定defualt提供者:

<siteMap enabled="true" defaultProvider="ExtendedSiteMapProvider">
  <providers>
    ....
  </providers>
</siteMap>

或者在相应的SiteMpaDataSource property中指定提供商,以便不使用默认设置。