c# - 为 ASP.NET 网站创建 web.sitemap 文件

标签 c# asp.net visual-studio-2010 web.sitemap

我正在尝试使用 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/

相关文章:

c# - 我如何为具有任意层次结构的类建模?

c# - 编译器错误消息: The compiler failed with error code -2146232576

c# - LoopingSelector 不显示

c# - 从javascript重置c#变量的值

unit-testing - VS2010(专业版)的所有免费集成代码覆盖工具

c# - .Net Core/ASP5 应用程序的构建路径是什么?

c# - 无法将数据从 ASP.Net WebAPI 2 发布到 SQS

asp.net - ValidationSummary 样式在 Post asp.net 的 IE 6 中不显示

visual-studio-2010 - C++/CLI 混合模式调试挂起(经常)

visual-studio-2010 - IronPython :- Visual Studio 2010 or SharpDevelop?