Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MvcSiteMapProvider无法使用简单的MVC.SiteMap文件_C#_Asp.net Mvc_Model View Controller_Sitemap_Mvcsitemapprovider - Fatal编程技术网

C# MvcSiteMapProvider无法使用简单的MVC.SiteMap文件

C# MvcSiteMapProvider无法使用简单的MVC.SiteMap文件,c#,asp.net-mvc,model-view-controller,sitemap,mvcsitemapprovider,C#,Asp.net Mvc,Model View Controller,Sitemap,Mvcsitemapprovider,所以这有点奇怪。我有一个非常简单的站点地图(简化到这种简单的调试——实时版本要复杂得多): 奇怪的是,如果我删除“为什么要买你的新家”节点,它就会工作。此外,以下操作也可以正常工作,并加载我的所有动态节点: <?xml version="1.0" encoding="utf-8" ?> <mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLoca

所以这有点奇怪。我有一个非常简单的站点地图(简化到这种简单的调试——实时版本要复杂得多):

奇怪的是,如果我删除“为什么要买你的新家”节点,它就会工作。此外,以下操作也可以正常工作,并加载我的所有动态节点:

    <?xml version="1.0" encoding="utf-8" ?>
    <mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalization="true">
      <mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
        <mvcSiteMapNode title="Find Your New Home" controller="FindYourNewHome" action="Index">
          <mvcSiteMapNode title="Markets" action="Market" updatePriority="Critical" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapMarketNodeProvider, MyProject.MVC.Extensions">
            <mvcSiteMapNode title="Communities" action="Community" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapCommunityNodeProvider, MyProject.MVC.Extensions">
              <mvcSiteMapNode title="Driving Directions" action="DrivingDirections" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapDrivingDirectionsNodeProvider, MyProject.MVC.Extensions" />
              <mvcSiteMapNode title="Floorplans" action="Floorplan" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapFloorplanNodeProvider, MyProject.MVC.Extensions" />          
            </mvcSiteMapNode>
          </mvcSiteMapNode>
        </mvcSiteMapNode>
      </mvcSiteMapNode>
</mvcSiteMap>


似乎只有当我添加非常简单的节点时,才会出现这个重复键错误,但是如果您查看我的第一个XML示例,就不可能有重复键。如果我在包含动态节点提供程序的最后一个XML示例中添加“Why Buy Your New Home”(为什么要购买新家)节点,它将再次中断。这方面有什么帮助吗?

这很可能意味着WhyBuy节点和其他URL的URL是相同的。也许你可以发布你的路由?

所以我在XML中大写了“Controller”和“Action”属性。这导致所有节点都落在我的“catchall”路线上,因此从技术上讲,我的所有站点地图节点都匹配一条路线


Grrr…

我也想到了这一点,并检查了我的路线,但它们都是独一无二的。无论我把什么额外的节点放在“为什么要买新房子”节点的位置,这种情况都会发生。“我只是出于演示的目的选择了这个。”斯科特·施卢尔-Hrm,很确定它是这样的。我以前遇到过这个问题,这就是问题所在。还有另一个dupe key问题,即MvcSitemap在内部使用controller\u action\u title index或其他东西对事物进行键控。也许这就是问题所在?我还是很知己,这是url和你的路线的问题。我会再检查一遍,也许会更仔细一点,看看我是否找不到什么。奇怪的是,它只使用一个“主节点”和一个辅助节点来执行此操作,而不管该节点是什么。Thx的帮助,我会回答当我有机会检查它多一点。好的,所以我剥离了我的路线,只有两个在网站地图中引用,留下了网站地图剥离到这两个节点。仍然收到相同的错误:-
An item with the same key has already been added.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: An item with the same key has already been added.

Source Error:

Line 75:             else
Line 76:             {
Line 77:                 returnValue = UrlHelper.Action(action, controller, new RouteValueDictionary(routeValues));
Line 78:             }
Line 79: 


Source File: C:\sitemap\Branches\3.0.0\MvcSiteMapProvider\MvcSiteMapProvider\DefaultSiteMapNodeUrlResolver.cs    Line: 77 
    <?xml version="1.0" encoding="utf-8" ?>
    <mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalization="true">
      <mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
        <mvcSiteMapNode title="Find Your New Home" controller="FindYourNewHome" action="Index">
          <mvcSiteMapNode title="Markets" action="Market" updatePriority="Critical" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapMarketNodeProvider, MyProject.MVC.Extensions">
            <mvcSiteMapNode title="Communities" action="Community" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapCommunityNodeProvider, MyProject.MVC.Extensions">
              <mvcSiteMapNode title="Driving Directions" action="DrivingDirections" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapDrivingDirectionsNodeProvider, MyProject.MVC.Extensions" />
              <mvcSiteMapNode title="Floorplans" action="Floorplan" updatePriority="High" dynamicNodeProvider="MyProject.MVC.Extensions.SiteMap.SiteMapFloorplanNodeProvider, MyProject.MVC.Extensions" />          
            </mvcSiteMapNode>
          </mvcSiteMapNode>
        </mvcSiteMapNode>
      </mvcSiteMapNode>
</mvcSiteMap>