0

私が使用している 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 にアクセスしようとすると例外が発生しました。これを実現する最も簡単な方法は何ですか。ありがとう

4

1 に答える 1