1

MVCSiteMapProvider パッケージを使用して、単一の xml ファイルで異なるメニューとブレッドクラムを達成した人。

私は MVC.Sitemap をすべてメニューとブレッドクラムでうまく機能させています。Home - Products の新しいノードを追加しました これは Products Controller の Index アクションです これをメニューに表示したくないのですが、誰かが /myapp/Products/Index または Products/Index に到達したときにパンくずリストに表示したいです

現時点では、例からピックアップした visibility="SiteMapPathHelper,!*" を使用しています。最新の nuget パッケージと web.config が次のようにセットアップされていると想定しています。

attributesToIgnore="可視性"

これは、これがパラメーターを無視することを意味するのか、それとも無視する必要があるノードにこのパラメーターを入力し、値を条件として取得する必要があるのか​​ を理解していないため、混乱を招きます。

4

1 に答える 1

2

デフォルトでは、MvcSiteMapProvider がメニュー XML 宣言で参照する属性はすべて url パラメーターに追加されます。

したがって、これがある場合:

<mvcSiteMapNode area="Admin" controller="User" action="Index" title="Users" someRandomAttribute=3/>

サイトマップが使用します

URL の /admin/user/index?someRandomAttribute=3。

attributesToIgnore="someRandomAttribute" を構成に入れると、生成される URL は次のようになります。

/管理者/ユーザー/インデックス

可視性プロバイダーはプラグイン システムです。デフォルトのプロバイダーは「可視性」属性を使用するため、ノードが可視かどうかを判断できます。

于 2012-12-09T18:47:38.597 に答える