我正在尝试使用 SiteMapPath 控件在 visual studio ASP C# 站点上实现面包屑导航功能。
我工作的公司继承了该网站,我们主要是 PHP 开发人员,所以请原谅我的无知。
最初,当我从工具箱中放入 SiteMapPath 时,我收到一条错误消息,指出没有找到 web.sitemap 文件。然后,我使用一个据称可以为 ASP 站点完成这项工作的应用程序创建了一个。
我们现在收到的错误消息告诉我们,您不允许在 xml 结构中两次使用相同的 URL。这看起来很荒谬,因为许多页面都有相同的链接。
一些研究告诉我在 xml 中为每个 URL 附加一个唯一的虚拟无用请求字符串。这似乎也有点荒谬,而且完全是黑客攻击——尤其是对于一个可能包含数百个重复网址的网站。
任何人都可以阐明这一点,或者甚至是一种完全不同的方法吗?
非常感谢!
最佳答案
基本上,默认站点地图提供程序 (System.Web.XmlSiteMapProvider
) 要求所有 URL 都是唯一的,因此它可以轻松解析当前选择的节点,属性 SiteMap.CurrentNode
。
这有点令人沮丧,这会导致人们像您注意到的那样使用虚假的查询字符串。对于只有几个 dup 的简单情况,这通常是可以接受的。
但是,您可以实现自己的站点地图提供程序,请参阅 Implementing ASP.NET Site-Map Providers在 MSDN 上。通过这样做,您可以拥有自己的逻辑来处理您的站点地图文件,并获得您想要的行为。
在这种情况下,自定义站点地图提供程序可能是最简洁的方法。
关于c# - 为 ASP.NET 网站创建 web.sitemap 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8299202/