我使用的是VWD 2010, ASP。NET和c#。我在另一篇文章中找到了如何做到这一点的指针。遗憾的是,我不能使它工作。
它指向的示例代码如下: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'在提供者集合中不存在。
如果取消对该行的注释,程序将运行,但不会调用新代码。什么好主意吗?
这是因为您没有指定默认为AspNetXmlSiteMapProvide
的defaultProvider
,正如您在这里看到的那样。
你只需要像这样指定默认的提供者:
<siteMap enabled="true" defaultProvider="ExtendedSiteMapProvider">
<providers>
....
</providers>
</siteMap>
或者在相应的SiteMpaDataSource
属性中指定提供者,这样就不使用默认值