【问题标题】:query string parameters for sitemap站点地图的查询字符串参数
【发布时间】:2014-06-26 17:05:56
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net sitemap querystringparameter sitemapprovider web.sitemap


    【解决方案1】:

    那是因为您没有指定 defaultProvider,它默认为 AspNetXmlSiteMapProvidelike you can see here

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

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

    或者在对应的SiteMpaDataSourceproperty中指定提供者,这样就不用默认了。

    【讨论】:

    • 你已经解决了这个问题。我有一个后续问题,但我不确定是否应该提出另一个问题。我现在的问题是 ExtendedSiteMapProvider 似乎没有被调用。我定义了断点,但它们永远不会中断。无论如何,谢谢!
    • 我认为您应该添加一个不同的问题,解释新情况。请添加显示配置的相关代码、提供程序实现的一点点以及使用它的控件(ASP.NET 导航控件:面包屑、菜单、树...)。很明显,问题现在出在其他地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多