我需要在很多不同的 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>
提前感谢任何知道一种简单方法来完成这项工作的人。