gpt4 book ai didi

asp.net - 在 asp.net 中动态构建的 SiteMapPath

转载 作者:行者123 更新时间:2023-12-04 23:31:56 25 4
gpt4 key购买 nike

我正在尝试使用 SiteMapPath 在我的网站上构建动态站点地图。

应该是这样的:

Home > Products > %product_name% > Prices

在哪里 %product_name%在运行时动态设置,取决于用户的选择。

看了很多关于这个主题的文章,选择这个 http://harriyott.com/2007/03/adding-dynamic-nodes-to-aspnet-site.aspx .它动态更改 web.sitemap XML 文件。问题是它仍然只在开始时构建站点地图一次,然后在每个页面上使用它。

我怎样才能让它在每个加载的页面上重建?

最佳答案

试试这个:

右键单击您的项目“添加新项目”,然后选择“站点地图”,
它将具有如下所示的 XML 结构:

<?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="">

<siteMapNode url="~/the page URL" title="Products" description="" >

<siteMapNode url="~/the page URL" title=" %product_name%" description="" >

<siteMapNode url="~/the page URL" title="Prices" description="" />

</siteMapNode >

</siteMapNode >

</siteMapNode >

<sitemap>

** 为每个节点添加描述是可选的。

现在你需要把它放在你想要的地方,所以你在页面的 HTML 端添加这个代码:
<asp:SiteMapPath ID="SiteMapPath1" runat="server">

<CurrentNodeStyle CssClass="Some class" />

<PathSeparatorTemplate>

<img runat="server" alt="" src="an image to separate between nodes" height="5" width="5" />

</PathSeparatorTemplate>

</asp:SiteMapPath>

当然,您有两页——一页是产品,一页是价格。

为 SiteMap 中的某个节点动态分配 Tile;在价格页面中添加此代码:

1)在页面加载中:
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);

2)在同一页面(价格页面)添加此功能:
 SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
SiteMapNode tempNode = currentNode;

tempNode.ParentNode.Title = "Change the Product name";
tempNode.ParentNode.Url = "Change the Product url";

return currentNode;
}

如您所见,您可以根据需要操作父节点,更改标题、url 等。我认为您也想更改 url;例如:“product.aspx?ID=blah”

关于asp.net - 在 asp.net 中动态构建的 SiteMapPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com