Asp.net mvc 3 MVC站点地图提供程序--DynamicNodeProvider导致面包屑消失

Asp.net mvc 3 MVC站点地图提供程序--DynamicNodeProvider导致面包屑消失,asp.net-mvc-3,sitemap,breadcrumbs,mvcsitemapprovider,Asp.net Mvc 3,Sitemap,Breadcrumbs,Mvcsitemapprovider,我正试图从中使用MvcSiteMapProvider为我的网站生成面包屑路径。我有一些页面需要在URL中传递ID,所以我尝试使用动态节点来实现这一点。但是,对于我声明为动态的所有节点,相应页面上不会出现面包屑。当我在DynamicNodeProvider类中使用断点进行调试时,我还遇到了一个有趣的错误。以下是该类的基本版本和sitemap节点: public class UserSummaryDynamicNodeProvider : DynamicNodeProviderBase {

我正试图从中使用MvcSiteMapProvider为我的网站生成面包屑路径。我有一些页面需要在URL中传递ID,所以我尝试使用动态节点来实现这一点。但是,对于我声明为动态的所有节点,相应页面上不会出现面包屑。当我在DynamicNodeProvider类中使用断点进行调试时,我还遇到了一个有趣的错误。以下是该类的基本版本和sitemap节点:

public class UserSummaryDynamicNodeProvider : DynamicNodeProviderBase
{
    private static ServiceClient proxy = new ServiceClient();
    List<User> users = proxy.GetUsers();

    public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
    {
        var nodes = new List<DynamicNode>();

        foreach (var user in users)
        {
            DynamicNode node = new DynamicNode();
            node.Key = "UserSummary";
            node.ParentKey = "UserMenu";
            node.RouteValues.Add("userID", user.ID);

            nodes.Add(node);
        }

        return nodes;
    }
}


<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalizatoin="true">
    <mvcSiteMapNode title="Home"  controller="Home" action="Index">
        <mvcSiteMapNode title="User Menu" controller="UserInfo" action="UserMenu">
            <mvcSiteMapNode title="User Summary" controller="UserInfo" action="UserSummary" dynamicNodeProvider="MySite.Users.DynamicNodeProviders.UserSummaryDynamicNodeProvider, MySite.Users" />
        </mvcSiteMapNode>
    </mvcSiteMapNode>
</mvcSiteMap>
public类usersummarydynamicondeprovider:dynamicondeproviderbase
{
私有静态ServiceClient代理=新ServiceClient();
List users=proxy.GetUsers();
公共重写IEnumerable GetDynamicNodeCollection()
{
var节点=新列表();
foreach(用户中的var用户)
{
DynamicNode节点=新的DynamicNode();
node.Key=“UserSummary”;
node.ParentKey=“UserMenu”;
node.RouteValues.Add(“userID”,user.ID);
nodes.Add(node);
}
返回节点;
}
}
我收到的错误显示为“无可用源代码”,似乎在我未指定的位置(C:\Projects\Codeplex\TFS10\mvcsitemap\branchs\3.1.0\src\mvcsitemprovider\mvcsitemprovider)查找特定的C源文件(mvcsitempode.cs)。我从codeplex站点下载了dll,这个类包含在库中,但是源文件没有单独包含在下载中。我已经包含了适当的程序集引用(MvcSiteMapProvider和MvcSiteMapProvider.Extensibility)。我是不是漏掉了什么明显的东西

这可能不是我唯一的问题。在尝试使用动态节点之前,我尝试将[SiteMapPreserveRouteData]属性添加到我的操作结果中,但这也不起作用。在这种情况下,面包屑仍会出现,但路由中的任何ID参数都不会保留。你知道为什么这样不行吗?我只是想澄清一下,我使用的是MVC3和.NET4.0


如果我需要提供更多信息,请告诉我。

如CodePlex上所述:尝试最新的3.1.0分支以解决此问题。

如CodePlex上所述:尝试最新的3.1.0分支以解决此问题。

嗨,maartenba,我尝试了3.1.0,但没有任何运气。你能确认我哪个版本解决了这个问题吗?嗨,maartenba,我尝试了3.1.0,但没有任何运气。你能确认我哪个版本解决了这个问题吗?