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