0

我正在将 webforms 应用程序转换为 MVC。前面的程序员构建了一个继承 StaticSiteMapProvider 类的类来创建他的站点地图。然后他把这个控件放在页面上

<asp:SiteMapDataSource ID="sitemapSQLMenuProvider" runat="server" ShowStartingNode="False" />

并像这样初始化它

Dim oSqlSiteMapProvider As New SQL.SiteMap.Provider.SQLSiteMapProvider(Session("KPISystemUserID"), PagePath)
  oSqlSiteMapProvider.Initialize("MySiteMap", Nothing)
  SiteMapDataSource1.Provider = oSqlSiteMapProvider.

然后他使用菜单控件并指定数据源

 <asp:Menu ID="menuMaster" runat="server" DataSourceID="sitemapSQLMenuProvider"/>

我在我的 MVC 项目中创建了一个类,并将代码复制过来以创建 SQLSiteMapProvider 类。它创建了节点……子节点……等等。Nuget 的 MvcSiteMapProvider 包是否有一种简单的方法可以简单地将此类指定为从何处获取节点?所有文档都在不断尝试让您使用静态 XML 文件(我不能使用它,因为我们的菜单来自数据库)。

看起来 webform 程序员在 web.config 中像这样设置了他的提供程序

 <siteMap defaultProvider="KPIMap" enabled="false">
      <providers>
        <clear />
        <add name="KPIMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/System/MY.sitemap" />
      </providers>
    </siteMap>

那个xml文件很简单

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title=""  description="">
        <siteMapNode url="" title=""  description="" />
        <siteMapNode url="" title=""  description="" />
    </siteMapNode>
</siteMap>

您会认为他们会添加一种简单的方法来插入 StaticSiteMapProvider 类的名称并完成它。

4

0 回答 0