gpt4 book ai didi

c# - 为什么 Context.RewritePath 维护查询字符串?

转载 作者:行者123 更新时间:2023-11-30 18:35:38 26 4
gpt4 key购买 nike

查看下面的代码后,我注意到对 Context.RewritePath 的调用不知何故不会丢失查询字符串,即使它是在没有查询字符串的情况下调用的。是否有任何文档解释为什么要维护查询字符串?

//URL relative path to ashx files is wrong to to path rewriting.
if (Request.Url.LocalPath.EndsWith(".ashx")) {
Context.RewritePath(Request.Url.LocalPath
.Substring(Request.Url.LocalPath.LastIndexOf("/") + 1));
}

编辑:我不是在问如何解决这个问题;代码行为正确。我只是要求提供此行为的文档。

最佳答案

您实际上是在重写路径,在大多数情况下,需要维护查询以传递到新路径。

以名为“getDocumentWithEnhancements.aspx”的新文档检索页面为例,而不是旧的“getDocument.aspx”。两者都需要一个有用的参数,但您希望使用新的参数。 RewritePath 可以完成这项工作,因为它将查询传递给旧的,然后传递给新的。如果你想显示某种错误页面或其他东西,那么你要么使用重定向,要么你重写的任何页面都会忽略查询字符串。

为什么不希望查询通过?你到底用这个做什么?也许它不是您需要的正确功能。

编辑:有一个带 3 个参数的重载函数,其中一个是查询字符串,您可以将其作为 null 传递以不使用查询字符串。

关于c# - 为什么 Context.RewritePath 维护查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14739266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com