0

我正在使用 VWD 2010、带有 C# 的 ASP.NET。我在另一篇 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”在提供程序集合中不存在。

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

4

1 回答 1

1

那是因为您没有指定defaultProviderwhich 默认为AspNetXmlSiteMapProvide就像您在此处看到的那样

所以你只需要像这样指定默认的提供者:

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

或者在对应的SiteMpaDataSource 属性中指定提供者,不使用默认值。

于 2014-06-26T17:33:12.463 回答