Asp.net 使用Request.Url.AbsoluteUri构建面包屑链接
在我的Asp.net 使用Request.Url.AbsoluteUri构建面包屑链接,asp.net,asp.net-mvc,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 4,在我的\u布局视图中,我添加了以下链接,以刷新当前页面作为面包屑栏的一部分: <a href="@Request.Url.AbsoluteUri"> @(aoutput == "Index" ? "Home" : aoutput) </a> 以上内容在我的开发环境中运行良好,但我不确定使用Request.Url.absulteuri是否是引用当前页面Url的正确方法?包括(例如http)、主机、端口、路径、查询字符串数据和。据我所知,片段不会包含在当前URL中,因为
\u布局
视图中,我添加了以下链接,以刷新当前页面作为面包屑栏的一部分:
<a href="@Request.Url.AbsoluteUri"> @(aoutput == "Index" ? "Home" : aoutput) </a>
以上内容在我的开发环境中运行良好,但我不确定使用Request.Url.absulteuri
是否是引用当前页面Url的正确方法?包括(例如http
)、主机、端口、路径、查询字符串数据和。据我所知,片段不会包含在当前URL中,因为它不是随请求一起发送的(也就是说,它是由浏览器客户端处理的)
这应该可以使用,并且不太可能给您带来问题。请注意,其中包含查询字符串数据,这意味着如果您有一个(设计糟糕的)数据操作系统,例如/Users/Index?action=deleteMostRecentUser
,那么用户可能会意外删除用户,因为URI将包含操作
替代品是
- :
/Home/Index
- :
/Home/Index?query=关键字
您可以按照您提到的那样使用它。
创建单独的局部视图以实现breadcrumb的更好方法。
并从控制器端传递想要的模型。(或在ViewBag中)
主要的好处是,您可以更好地控制逻辑,并且可以灵活地进行未来的更改。
希望有帮助 感谢您的回复,但您所说的(设计糟糕的)数据操作系统是指我使用Get请求而不是Post删除记录,而我的系统中不是这样吗?我的系统中的所有添加、编辑和删除都是使用Post请求发出的,因此面包屑链接将只发送Get请求。。我错过了什么?