使用MvcSiteMapProvider和静态StaticSiteMapProvider类

时间:2018-01-19 16:59:11

标签: asp.net-mvc sitemap mvcsitemapprovider sitemapprovider

我正在将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类的名称并完成它。

0 个答案:

没有答案