問題タブ [asp.net-mvc-sitemap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - MVC サイトマップ - 条件付きで説明を表示
サイトで MVC サイトマップ プロバイダーを使用しており、一度に最大 3 つのバージョンのナビゲーションをページに表示しています。
まず、トップレベル:
@Html.MvcSiteMap("MvcSiteMapProvider").Menu(0, true, false, 1)
トップレベルのページを表示するときに再利用されるサブセクション:
@Html.MvcSiteMap("MvcSiteMapProvider").Menu(2, 1, true)
これが私のサイトマップの 2 レベルのセクションです。
...そしてここに表示テンプレートがあります
@using System.Web.Mvc.Html @using MvcSiteMapProvider.Web.Html.Models
@{ // デフォルト文字列 itemIcon = "1"; string listClass = "メニュー項目";
}
サブレベル ナビゲーションの各インスタンスで表示テンプレートが同一になり、CSS による外見上の違いがすべてあるようにしています。私がやりたいことは、条件付きで説明属性を含めることです。たとえば、説明のみをレンダリングします。
現在、説明はすべてのメニューに対してレンダリングされ、不要な部分については CSS で非表示になっています。これは明らかに汚い修正です。
これは、サイトマップを呼び出す前に変数を設定し、その変数を表示テンプレートで使用するなど、より広範な MVC の質問である可能性があります。
任意の提案をいただければ幸いです。
ありがとう!
asp.net-mvc - mvc.SiteMap の XML ノードを global.asa のルートにバインドするのに問題がありますか?
MVC3、C#4、Razor、MvcSiteMapProvider V4 を使用しています。
mvc.sitemap ファイルの MvcSiteMapNodes を、global.asa のルートに明示的にバインドしようとしています。しかし、うまくいかないようです。私が何かを省略したことは間違いありません。
global.asa の私のルート:
私の mvc.sitemap の一部:
したがって、私の2つのURLは次のとおりです。
報告ルート:
Reports_Sections ルート:
2 番目のルートで認識されていないため、パンくずリストが該当ページに表示されません。mvc.sitemap で "route" 属性を指定するだけで、mvcSiteMapProvider が 2 つをバインドすることを期待していました。
考え。どこで間違ったのですか?
どうもありがとう
編集:
「mvc.sitemap」に「controller」と「action」を指定する必要があり、「route」だけでは動作しないようです。
asp.net-mvc-3 - MvcSiteMapProvider Breadcrumb トレイルで GUID を取得しているようですが、理由がわかりません。
MVC3、C#、Razor、mvcSiteMapProvider V4 を使用しています。
「Mvc.sitemap」を使用しています
"Global.asax" カスタム ルートは次のようになります。
「Report」および「Report_Section」ルートは正常に機能します。ただし、「Background」ルートに入ると、mvcSiteMap BreadCrumb URL の「Report_Section」および「Report」ルートのすべてのルート構造が失われます。代わりに、GUID を取得します。
これは、自動生成された XML ノード キーである可能性があります。ただし、クリックすると 404 が発生します。
次のようなものを取得する必要があります。
レポート
セクション
これを引き起こしている可能性のあるアイデアはありますか?
ありがとう。
asp.net-mvc - 同じ mvcSiteMapNode が mvc.SiteMap の異なる場所に表示される場合、正しいパンくずリストを維持するにはどうすればよいですか?
メインのダッシュボード SiteMapNode からぶら下がっている SiteMapNode があります。
上記で作成されたブレッドクラムは、「ダッシュボード > 会社のユーザー」です。
これも参考にして、「Dashboard > Yours Sub > Company Users」を取得したい
ただし、「ダッシュボード>会社のユーザー」というメッセージが表示されます
最初の SiteMapNode に対するパターン マッチングがまだ行われていると思われます。
正しい SiteMapNode が使用され、正しい BreadCrumb Trail が生成されるようにするにはどうすればよいですか。ちなみに、コントローラーとアクションは同じなので、アクション属性がどれほど役立つかわかりませんか?
どうもありがとう。
c# - MVCSitemapProvider は現在のノードと親ノードを示します
現在のノードとその親を css クラスでマークしたいと思います。私は周りを検索していて、これらのリンクを見つけました:
http://mvcsitemap.codeplex.com/discussions/257786 http://mvcsitemap.codeplex.com/discussions/245000
そのため、SiteMapNodeModelList.cshtml を変更すると、現在のノードが強調表示されます。しかし、親ノードを強調表示する方法がわかりません。
親ノードをマークするために、すべての直接の子要素をチェックする拡張メソッドを作成しました (2 つのレベルしかありません)。
MenuHelperModel.cshtml を次のように変更しました。
これで完全に機能するようになりました。しかし、もっと簡単なアプローチは本当にないのでしょうか? これを必要とする人は地球上で初めてではないでしょうか?