我正在使用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”。
如果我取消注释该行,程序将运行,但永远不会调用新代码。有什么想法吗?
答案 0 :(得分:1)
这是因为您没有指定defaultProvider
,其默认默认为AspNetXmlSiteMapProvide
,like you can see here。
所以你必须像这样指定defualt提供者:
<siteMap enabled="true" defaultProvider="ExtendedSiteMapProvider">
<providers>
....
</providers>
</siteMap>
或者在相应的SiteMpaDataSource
property中指定提供商,以便不使用默认设置。