私が使用している SiteMap コントロールで、2 つ以上のノードが同じページを指すようにします。
<siteMapNode url="~/Default.aspx" title="Home" description="Home page">
<siteMapNode url="~/SectionList.aspx" title="By section" description="List of sections">
<siteMapNode url="~/BrowsePublications.aspx" title="publications of section" description="Publications of section"/>
</siteMapNode>
<siteMapNode url="~/Officers.aspx" title="By responsible officer" description="List of officers">
<siteMapNode url="~/BrowsePublications.aspx" title="publications of officer" description="Publications of officer"/>
</siteMapNode>
</siteMapNode>
基本的に、表示するグリッドがあります。このグリッドは、さまざまな方法でフィルター処理できます。各フィルターは、ユーザーが特定のエントリをクリックすると、そのエントリに関連するデータを含むグリッドを表示するページにリダイレクトされるページです。それを実現するために、クエリ文字列パラメーターを使用しています。この制限を克服する1つの方法は、重複ノードのURLの最後にダミーパラメーターまたは「#」を追加することであるとオンラインで読んだので、これを試しました
<siteMapNode url="~/Default.aspx" title="Home" description="Home page">
<siteMapNode url="~/SectionList.aspx" title="By section" description="List of sections">
<siteMapNode url="~/BrowsePublications.aspx?view=2" title="Publication view 1" description="Publication view"/>
</siteMapNode>
<siteMapNode url="~/Officers.aspx" title="By responsible officer" description="List of officers">
<siteMapNode url="~/BrowsePublications.aspx?view=3" title="Publication view" description="Publication view"/>
</siteMapNode>
</siteMapNode>
ハッシュも使用していますが、クエリパラメーターを使用してBrowsePublications.aspxにリダイレクトしているため、(私のURLは次のようなものです
BrowsePublications.aspx?view=2&c=24
asp.net はそれを認識せず、BrowsePublications.aspx から SiteMap.CurrentNode にアクセスしようとすると例外が発生しました。これを実現する最も簡単な方法は何ですか。ありがとう