1

同様の質問がここで尋ねられました が、解決策はありません。この質問に対する受け入れられた回答は、1 つのメニュー項目に対してのみ機能します。複数のアイテムの URL として「#」を使用すると、次のようなエラーが発生しますsame url # was used multiple times。そのため、専門家からの解決策を聞くためにこれを再度投稿しました。私の質問は、

以下のようなサイトマップがあります。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="Invisible" description="Main Page" url="Menu.aspx" >
    <siteMapNode title="Home" url="Default.aspx" />
    <siteMapNode  title="Time Sheets" url="#">
      <siteMapNode title="Time Sheet Entry" description="Menu one" url="Menu1.aspx" />
      <siteMapNode title="Time Sheet Approval" description="Menu Two" url="Menu2.aspx" />
    </siteMapNode>
    <siteMapNode title="Leaves">
      <siteMapNode title="Leave Request" url="leaverequest.aspx" />
      <siteMapNode title="Leave Approval" url="leaveapproval.aspx"/>
    </siteMapNode>
    <siteMapNode roles="Administrator" description="Only for administrators" title="Reports" url="SubMenu1.aspx" />
    <siteMapNode  title="Administration" url="~/UserRegistration.aspx"  >
      <siteMapNode  title="Register New User" url="~/Account/AdminRegister.aspx"></siteMapNode>
    </siteMapNode>
    <siteMapNode title="Help" url="~/Account/UserSettings.aspx" description=""></siteMapNode>
  </siteMapNode>
</siteMap>

葉ノードの場合、URL はありません。リーフの下には 2 つのサブメニューがあります。これらには、特定のページへの URL のみが含まれます。しかし、マスター ページでこれをレンダリングすると、Leavesノードがまったく表示されません。のような空の url 属性で試しました <siteMapNode title="Leaves" url="#">。これも解決策を提供しません。サイトマップ ページのどこが間違っているのでしょうか?

4

2 に答える 2

1

この正確なシナリオに対して私が行った最も簡単な解決策は、最初の URL に「#」を付け、次に 2 番目に「##」、3 番目に「###」というように付けることでした。これにより、リンクをクリックできなくなり、一意の URL ルールも満たされます。ハック?多分、しかし私がそれを使用しているもののために動作します。

于 2013-03-19T16:01:24.360 に答える
0

これは古い質問だと思いますが、ロール属性を空でないものとして定義すると、たとえば.

<siteMapNode url="" title="Leaves" roles="*">

次に、ノードレンダリングされます。残念ながら、その理由はわかりません。これが誰かを助けることを願っています!

于 2015-03-18T17:00:14.050 に答える