【发布时间】:2012-07-28 02:31:57
【问题描述】:
我正在构建一个简单的 CMS,它将导航/站点地图/站点结构存储在数据库表中。当应用程序启动时,我可以根据该表中的数据动态创建我的站点地图节点。
我遇到的问题是,当应用程序运行时向表中添加新记录或更新现有记录时,我需要重建站点地图结构。看起来很简单,但我不知道怎么做。
【问题讨论】:
标签: mvcsitemapprovider asp.net-mvc-sitemap
我正在构建一个简单的 CMS,它将导航/站点地图/站点结构存储在数据库表中。当应用程序启动时,我可以根据该表中的数据动态创建我的站点地图节点。
我遇到的问题是,当应用程序运行时向表中添加新记录或更新现有记录时,我需要重建站点地图结构。看起来很简单,但我不知道怎么做。
【问题讨论】:
标签: mvcsitemapprovider asp.net-mvc-sitemap
没有对即时清除/重建站点地图的内置支持。
但是您可以通过实现从MvcSiteMapProvider.DefaultSiteMapProvider 派生的自定义站点地图提供程序来轻松实现这一点,并使用受保护的Clear() 方法创建用于清除缓存的方法。示例:
public class CustomSiteMapProvider : DefaultSiteMapProvider
{
public void ClearSiteMap()
{
Clear();
}
}
我没有尝试过,但它应该可以工作。请记住将 web.config 文件更改为使用自定义站点地图提供程序而不是 DefaultSiteMapProvider。
【讨论】: