MvcSiteMapProvider属性不起作用

MvcSiteMapProvider属性不起作用

问题描述:

我尝试使用MvcSiteMapProvider作为面包屑。MvcSiteMapProvider属性不起作用

我有以下的网站地图文件:

<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0" 
      xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd"> 

    <mvcSiteMapNode title="Home" controller="Home" action="Index" key="Index"> 
    <mvcSiteMapNode title="About" controller="Home" action="About"/> 
    <mvcSiteMapNode title="Company List" controller="Company" action="Index" key="Company"> 
     <mvcSiteMapNode title="Create company" controller="Company" action="Create" /> 
    </mvcSiteMapNode> 
    </mvcSiteMapNode> 

</mvcSiteMap> 

并显示:

   @Html.MvcSiteMap().SiteMapPath() 

它工作正常网页 “创建公司”, “公司名单” 等

然后我想添加它用于参数的动作:

 [MvcSiteMapNode(Title = "Company Details", ParentKey = "Company", Key = "CompanyDetails")] 
     public ActionResult Details(int? id) 
     { 
... 
      CompanyDetailVM model = mapper.Map<CompanyDetailVM>(company); 
      return View(model); 
     } 

但它不起作用,根本不显示面包屑。哪里出错?

尝试id路由参数添加到站点地图结点:

[MvcSiteMapNode(Title = "Company Details", ParentKey = "Company", Key = "CompanyDetails", PreservedRouteParameters = "id")] 
    public ActionResult Details(int? id) 
    { 
     ... 
    }