MVC 5面包屑不与区域合作

时间:2017-01-28 06:13:23

标签: c# .net asp.net-mvc asp.net-mvc-4

为了在我的网站上使用面包屑。我已经安装了包MvcSiteMapProvider.MVC5。我的应用程序有两个方面 - Partner&客户:

enter image description here

我的站点地图

enter image description here

它不接受第二个站点地图节点。它将如何管理,我们如何才能实现这一目标。 ?。任何帮助都会很明显。

显示模板安装在〜/ Views / Shared / DisplayTemplates。

位置

enter image description here

2 个答案:

答案 0 :(得分:0)

<mvcSiteMap>只允许一个<mvcSiteMapNode>孩子。

您可以将家庭控制器和操作用作痕迹导航中的第一个元素,然后为您的区域添加站点地图节点。

<?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-4.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
  <mvcSiteMapNode title="Home" controller="Home" action="Index">
    <mvcSiteMapNode title="Partner" controller="Dashboard" action="Index" area="Partner">
      ...
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Customer" controller="Dashboard" action="Index" area="Customer">
      ...
    </mvcSiteMapNode>
  </mvcSiteMapNode>
</mvcSiteMap>

答案 1 :(得分:0)

@Edin是对的。您只能拥有1个根SiteMap节点,就像网站一样,您只能拥有1个主页。您的区域应该嵌套在代表主页的节点内部。

如果您不希望主页节点出现在面包屑中,您可以使用visibility provider隐藏它。

<?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-4.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
  <mvcSiteMapNode title="Home" controller="Home" action="Index" 
    visibility="!SiteMapPathHelper" 
    visibilityProvider="MvcSiteMapProvider.FilteredSiteMapNodeVisibilityProvider, MvcSiteMapProvider">
    <mvcSiteMapNode title="Partner" controller="Dashboard" action="Index" area="Partner">
      ...
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Customer" controller="Dashboard" action="Index" area="Customer">
      ...
    </mvcSiteMapNode>
  </mvcSiteMapNode>
</mvcSiteMap>