自动将所有控制器和操作节点添加到Mvc.sitemap

时间:2012-07-27 21:07:56

标签: asp.net-mvc-3 sitemap mvcsitemapprovider

我已经在我的MVC 3应用程序上安装了MVCSitemapProvider for breadcrumbs trail。它在Mvc.sitemap.xml

中自动生成以下节点
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0 MvcSiteMapSchema.xsd"
            enableLocalization="true">

  <mvcSiteMapNode title="Home" controller="Home" action="Index">

    <mvcSiteMapNode title="About" controller="Home" action="About"/>
  </mvcSiteMapNode>

</mvcSiteMap>

以下是用于显示面包屑的HTML帮助程序

  @Html.MvcSiteMap().SiteMapPath()

在我的应用程序中,有很多控制器及其动作是忙于在mvcSiteMap中添加所有mvcSiteMapNode的那些动作和问题是,是否有可能在Mvc.sitemap.xml的mvcSiteMapNode中列出所有控制器及其各自的动作没有全部手动写入。

1 个答案:

答案 0 :(得分:1)

我认为最接近的方法是使用方法的属性,请参阅https://github.com/maartenba/MvcSiteMapProvider/wiki/Defining-sitemap-nodes-in-code。例如:

// GET: /Checkout/Complete 
[MvcSiteMapNodeAttribute(Title = "Checkout complete", ParentKey = "Checkout")] 
public ActionResult Complete(int id) 
{ 
  // ... 
}