Asp.net mvc 4 如何维护面包屑的状态(历史记录)

Asp.net mvc 4 如何维护面包屑的状态(历史记录),asp.net-mvc-4,navigation,breadcrumbs,Asp.net Mvc 4,Navigation,Breadcrumbs,我正在努力为目录导航系统实现面包屑功能 在我的应用程序中,用户可以上载zip文件。一旦他这样做了,他就可以浏览zip文件的内容(即浏览其文件夹和文件)。我已经实现了这个逻辑。现在我想在页面顶部添加面包屑,这样用户就可以单击上一个文件夹并返回到它。我决定创建一个漂亮的Url,但我使用上面的数字(ID)从数据库中检索上传和文件夹(或文件)。如果用户当前使用id=10在上载中导航,并且他位于MainDirectory/folder1中,并且folder1具有id=100,则Url将为localhost

我正在努力为目录导航系统实现面包屑功能

在我的应用程序中,用户可以上载zip文件。一旦他这样做了,他就可以浏览zip文件的内容(即浏览其文件夹和文件)。我已经实现了这个逻辑。现在我想在页面顶部添加面包屑,这样用户就可以单击上一个文件夹并返回到它。我决定创建一个漂亮的Url,但我使用上面的数字(ID)从数据库中检索上传和文件夹(或文件)。如果用户当前使用
id=10
在上载中导航,并且他位于
MainDirectory/folder1
中,并且folder1具有
id=100
,则Url将为
localhost:1234/upload/10/dir/100/MainDirectory/folder1/
。我有上传和文件夹(或文件)的id


创建面包屑时,我可以从Url的最后一部分检索历史记录,但我没有这些文件夹的
id
。我无法使用文件夹名称作为密钥,因为它不是唯一的。我想把所有ID都放在Url上,但这样会变得很难看,比如:
localhost:1234/upload/10/dir/99/100/MainDirectory/folder1/
。这个想法是先放置所有ID,然后放置漂亮的路径

我想到了会话,但我拒绝了它,因为用户可以同时在不同的选项卡中导航,面包屑历史记录取决于当前页面。我认为构建面包屑的信息需要在每次请求时发送

我没有比这更好的设计了。有什么想法吗


编辑:我只需要镜像存储库的导航系统。

您可以在您的模型中添加面包屑项目列表或其他内容吗?@aw04我需要从请求中获取构建面包屑的信息。我正在寻找存储它的最佳方式以及随请求发送它的最佳方式(用户通过单击链接发出)“我不能使用文件夹名称作为键,因为它不是唯一的”-但在特定的[Zip文件]目录中,名称是唯一的。上载ID用作目录树开始的鉴别器。为什么您坚持要求查找需要“ID”一个表可以有多个键。除了另一个键外,还可以使用自动递增的代理PK,例如(UPLOAD_ID,PATH)。@user2864740我必须了解SARGABLE查询。谢谢你的提示。