C# 存储当前URL的有效方法

C# 存储当前URL的有效方法,c#,asp.net,asp.net-1.1,C#,Asp.net,Asp.net 1.1,我正在开发一个传统的ASP.NET 1.1应用程序,它没有链接面包屑导航。我的意思是,面包屑是存在的,但不是超链接的 当前的要求之一是将所有碎屑正确地连接起来。每个页面都是基于三个或四个querystring参数从数据库中提取的报告,显示它的datagrid是在运行时动态构建的 我没有太多的选择来实现某种站点地图系统。此外,仅仅插入站点地图系统并不容易,因为并没有简单的页面流模式 因此,我只是在现有条件的基础上进行了大量的字符串构建,并适当地注入链接 因此,我经常使用这个片段: HttpUtil

我正在开发一个传统的ASP.NET 1.1应用程序,它没有链接面包屑导航。我的意思是,面包屑是存在的,但不是超链接的

当前的要求之一是将所有碎屑正确地连接起来。每个页面都是基于三个或四个querystring参数从数据库中提取的报告,显示它的datagrid是在运行时动态构建的

我没有太多的选择来实现某种站点地图系统。此外,仅仅插入站点地图系统并不容易,因为并没有简单的页面流模式

因此,我只是在现有条件的基础上进行了大量的字符串构建,并适当地注入链接

因此,我经常使用这个片段:

HttpUtility.UrlDecode(Request.Url.AbsoluteUri);
我肯定在25个地方用过。这显然是非常不健康的

我是否应该在helper类中加入一个静态helper方法,并将其称为
currentContextURL
或类似的东西?还是有更好的方法来实现这一点


谢谢。

如果存在面包屑链接,并且您受到.NET1.1的限制,我将继续使用helper。
您可以像类一样实现链表,并在其中维护链接,并从该实现中生成面包屑

LinkedList听起来是个不错的主意,但我认为它不适合,因为许多报告也可以从其他模块访问,这会打乱任何模式的可能性。假设有一个面包屑:
ModuleA->pg1->pg2->pg3->pg18->pg5
。这里
pg18
可以通过ModuleB和ModuleC各自的查询字符串参数访问。我认为您不应该关心其他模块以及它们是否可以在链表中访问,因为它应该是足够通用的解决方案。我可能会在列表中保留head和tail,并将其双重链接(父母到孩子,反之亦然),并将列表传递到每个页面(会话中或其他任何页面)。加载页面时,只需将当前页面名称附加到尾部即可。使用此技术,您将有一个您导航过的所有页面的轨迹。如果用户单击面包屑上的后退或链接->用相同的名称重新定义尾部到尾部页面最近的位置,我有点担心,因为我已经有一段时间没有使用LinkedList了,但是您描述的方式使我更容易理解我可以如何操作。非常感谢。