0

我正在尝试为 MVCSiteMap 自定义输出布局的外观,并且一直在修改 MenuHelperModel.cshtml 并取得了一些成功。我唯一的问题是我不知道如何制作第一个 SiteMapNode 的子列表?目前输出如下:

•Home 
•Contact US 
•News
    Sports 
•About 

但我希望它看起来像:

•Home 
     Contact US 
•News
    Sports 
•About

我无法弄清楚如何使“联系我们”链接成为“主页”链接的子组件,就像 Sprots 用于新闻一样。

这是我的站点地图代码:

<?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 WebSiteMapSchema.xsd"
            enableLocalization="true">

    <mvcSiteMapNode title="Home" controller="Home" action="Index">
        <mvcSiteMapNode title="Contact US" controller="Home" action="Contact" />

        <mvcSiteMapNode title="News" controller="Home" action="News">
            <mvcSiteMapNode title="Sports" controller="Home" action="Sprots" />
        </mvcSiteMapNode>

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

和 MenuHelperModel.cshtml:

@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models

<ul>
    @foreach (var node in Model.Nodes) { 
        <li>@Html.DisplayFor(m => node)
            @if (node.Children.Any()) {
                @Html.DisplayFor(m => node.Children)
            }
        </li>
    }
</ul>

我必须修改哪些内容才能使“联系我们”成为“主页”链接的子项?

4

1 回答 1

0

我想我想通了,看起来如果我使用此代码呈现 SiteMap 它不会显示第一个节点,这将允许我构建一个新的主菜单并添加子选项。我还没有在子页面上尝试过这个,因为我只构建了一个索引页面。一旦我在子页面上测试它以确保它仍然正确显示,我将更新。

@Html.MvcSiteMap().Menu(false)
于 2013-06-15T21:36:04.063 回答