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