1

它快把我逼疯了。我已经搜索并尝试过搜索并尝试过......现在我请求您的帮助!

我有一个使用站点地图的 asp:menu 控件。用户通过身份验证后,我想从后面的代码(c#)动态更改站点地图。这是相关的代码行:

Site.Master:

<asp:Menu ID="aspMenu" runat="server" StaticDisplayLevels="1" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" StaticEnableDefaultPopOutImage="False">

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False"
StartFromCurrentNode="False" StartingNodeOffset="0" />

web.config:

  <siteMap defaultProvider="WebSitemap" >
    <providers>
      <add name="WebSitemap" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap"/>
      <add name="MemberSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="Member.sitemap"/>
    </providers>
  </siteMap>

Site.Master.cs:

    protected override void OnPreRender(System.EventArgs e)
    {
        if (Request.IsAuthenticated)
        {
            SiteMapDataSource1.SiteMapProvider = "MemberSitemap";

        }
    }

成功构建(VS 2010、4.0 框架)后,登录后出现以下错误:

“/”应用程序中的服务器错误。找不到 SiteMapProvider 'MemberSitemap'。

我究竟做错了什么?谢谢....鲍勃

4

1 回答 1

0

呃,站点地图提供程序位于 web.config 的错误部分。我不建议在睡眠剥夺方面使用 web.config。

于 2012-02-29T06:20:13.673 回答