さまざまな Web ファイルの多くの場所にある特定の URL を取得する必要があります。そこで、XML 形式でサイトマップを作成し始めます。ナビゲーション メニューやブレッドクラムは必要ありません。単にリソース キーで URL を取得するだけです。残念ながら、これまでのすべての読み物は、ナビゲーション メニューの設定方法を説明しているだけです。そして、これまでに試したことはすべて、エラーが発生するだけです。
私はこのようなものが必要です(ただし、スロー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。また、Mynode1は常にnullです):
SiteMapNode MyNode1 = new SiteMapNode(MyXmlSiteMapProvider, "Product1");
HyperLink1.NavigateUrl = MyNode1.Url;
私もこれを行います:
SiteMapNode MyNode1 = new SiteMapNode(MyXmlSiteMapProvider, "Product1");
MyNode1= MyXmlSiteMapProvider.FindSiteMapNodeFromKey("Product1");
HyperLink1.NavigateUrl = MyNode1.Url;
また、NameValueCollection と providerAttributes を使用して MyXmlSiteMapProvider を初期化し、次に BuildSiteMap() を試してみましたが、結果は同じでした。(空白のリンク、またはエラー)
私のサイトマップは次のよう になります (ファイル名はweb.sitemap です)
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/default.aspx" title="Home" description="Homepage" resourceKey="home">
<siteMapNode url="~/products/mainlist.aspx" title="List of products" description="" resourceKey="listOfProducts" >
<siteMapNode url="~/products/catA/someproduct.aspx" title="Product tittle" description="" resourceKey="Product1"/>
</siteMapNode>
</siteMapNode>
</siteMap>
私の Web.Config ファイルには、これがあります
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="SiteMap provider that reads in .sitemap files."
type="System.Web.XmlSiteMapProvider"
siteMapFile="web.sitemap" />
</providers>
</siteMap>
これを機能させる簡単な方法を知っている人に事前に感謝します。