MVC 4 サイトで MvcSiteMapProvider を使用しようとしていますが、(たとえば) プロジェクト一覧ページと子プロジェクト詳細ページがあるサイトのセクションで問題が発生しています。
詳細ページにアクセスすると、リストから選択されたエンティティの ID が URL で指定されます。
~/Project/2/Detail
サイト マップ プロバイダーに拡張機能を提供させたくないので、詳細ページを動的ノードにはしていません。基本的に、サイト マップ プロバイダーが URL パラメーターを無視しprojectID
、常に詳細アクションにマップするようにしたいと考えています。
残念ながら、次の問題があります。
- リスト ページに対する最初の要求でアプリが開始された場合、ユーザーはクリックして任意のプロジェクトに移動でき、SiteMap は詳細ページとうまく一致します。
- アプリが詳細ページのリクエストで開始された場合、URL に最初のリクエストの ProjectID が含まれている場合にのみ、SiteMap は詳細ページと一致します。つまり、他のプロジェクトにアクセスすると、SiteMap の currentnode は null になります。
私はキャッシングを無効にしようとしたり、キャッシングを長期間有効にしたり、ソースコードを掘り下げたりしても成功しませんでした。一貫性のない動作は、それがバグであることを示唆しています。どんな助けでも大歓迎です。