0

我正在使用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

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

所以,你只需要指定defualt提供商这样的:

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

或者在相应的SiteMpaDataSourceproperty指定供应商,使不使用默认值。

+0

你已经解决了这个问题。我有一个后续问题,但我不确定是否应该打开另一个问题。我现在的问题是ExtendedSiteMapProvider似乎没有被调用。我定义了断点,但它们永远不会中断。无论如何,谢谢! – elbillaf

+0

我认为你应该增加一个不同的问题,解释新的情况。请添加相关的代码,显示配置,一点提供程序实现,以及使用它的控件(ASP.NET导航控件:面包屑,菜单,树...)。很显然,问题现在在其他地方。 – JotaBe

+0

非常好!谢谢! – elbillaf