使用Request.Url.AbsoluteUri构造面包屑链接

时间:2013-12-30 22:56:15

标签: asp.net asp.net-mvc asp.net-mvc-4

在我的_layout视图中,我添加了以下链接,以刷新当前页面作为我的面包屑栏的一部分:

<a href="@Request.Url.AbsoluteUri"> @(aoutput == "Index" ? "Home" : aoutput) </a>

以上在我的开发环境中运行良好,但我不确定使用Request.Url.AbsoulteUri是否是引用当前页面URL的正确方法?

2 个答案:

答案 0 :(得分:1)

AbsoluteUri包括scheme(例如http),主机,端口,路径,查询字符串数据和fragment。据我所知,片段不会包含在当前URL中,因为它不随请求一起发送(也就是说,它由浏览器客户端处理)。

这应该可以使用,不太可能导致您的问题。请注意,包含查询字符串数据,这意味着如果您拥有(设计不当)数据操作系统(如/Users/Index?action=deleteMostRecentUser),则用户可能会意外删除用户,因为URI将包含action

替代品

答案 1 :(得分:1)

您可以按照提到的方式使用它。 更好地制作单独的局部视图来实现面包屑。 并从Controller端传递通缉模型。 (或在ViewBag中)

主要的好处是你可以更好地控制逻辑,也可以灵活应对未来的变化。 希望有所帮助