0

MVCSiteMap の出力レイアウトの外観をカスタマイズしようとしており、MenuHelperModel.cshtml を変更して成功しています。私が持っている唯一の問題は、最初の SiteMapNode のサブリストを作成する方法を理解できないことですか? 現在、出力は次のようになります。

•Home 
•Contact US 
•News
    Sports 
•About 

しかし、私がそれを次のように見せたいのです:

•Home 
     Contact US 
•News
    Sports 
•About

Sprots がニュース用のように、お問い合わせリンクをホーム リンクのサブコンポーネントにする方法がわかりません。

これが私のSiteMapコードです:

<?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>

Contact Us が Home リンクの子になるようにするには、何を変更する必要がありますか?

4

1 に答える 1

0

このコードを使用して SiteMap をレンダリングすると、最初のノードが表示されないように見えます。これにより、新しいホーム メニューを作成し、子オプションを追加できます。インデックスページしか構築していないため、サブページでこれをまだ試していません。サブページでテストして、正しく表示されることを確認したら、更新します。

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