Model view controller MVC SiteMapProvider允许具有相同URL的节点

Model view controller MVC SiteMapProvider允许具有相同URL的节点,model-view-controller,mvcsitemapprovider,Model View Controller,Mvcsitemapprovider,是否有允许多个节点具有相同URL的设置? 我们已经建立了一个小型CMS类型的系统,web内容管理员可以在其中向网站添加包含内容和小部件的新页面。 它们有时会错误地将相同的名称添加到同一父节点下的多个页面中,从而导致两个节点具有相同的URL。我宁愿不显示和忽略副本,也不抛出异常。URL(如果提供)用作字典的键。根据定义,字典的键必须是唯一的。即使删除了重复URL检查,字典也会抛出一个更神秘的重复密钥异常 我建议在使用IDynamicNodeProvider或ISiteMapNodeProvider

是否有允许多个节点具有相同URL的设置? 我们已经建立了一个小型CMS类型的系统,web内容管理员可以在其中向网站添加包含内容和小部件的新页面。 它们有时会错误地将相同的名称添加到同一父节点下的多个页面中,从而导致两个节点具有相同的URL。我宁愿不显示和忽略副本,也不抛出异常。

URL(如果提供)用作字典的键。根据定义,字典的键必须是唯一的。即使删除了重复URL检查,字典也会抛出一个更神秘的重复密钥异常

我建议在使用
IDynamicNodeProvider
ISiteMapNodeProvider
读取数据之前对其进行消毒

选择权
  • 在允许保存URL之前,向数据输入表单添加检查以确保URL是唯一的
  • 在数据库的URL字段上设置一个唯一的约束,以便在数据输入时而不是在读取数据时引发异常
  • 在查询中放置一个不同的筛选器,以便在将重复的URL记录添加到
    站点地图时只考虑其中一个
  • 使用数据驱动URL时,请考虑使用
    控制器
    操作
    id
    (从主键)。唯一真正需要数据驱动的东西,URL将在
    mvcsitemprovider
    中正确解析

  • 我现在已经添加了我自己的设置错误SameURL,如果设置为false,将检查字典中是否有重复的键(ContainsKey),如果找到,它将不会添加到字典中并获得下一条记录。我100%确定我没有任何多个URL,但我仍然得到错误,说存在多个URL。错误告诉我是重复的url不是重复的。回收应用程序池可以修复它。我猜缓存有什么问题?在我找到问题所在之前,这项工作目前正在进行。