【发布时间】:2017-10-06 23:22:14
【问题描述】:
Server.TransferRequest 的文档包含以下注释:
如果 path 参数指定了一个查询字符串,它将被用作新的查询字符串。如果不包含查询字符串,则请求的查询字符串将被重复使用。
如何将带有查询字符串的请求转移到没有查询字符串的路径?
【问题讨论】:
-
退后一步,解释一下您的潜在业务问题。
-
Server.TransferRequest 是 ASP.NET 的工件,如果您使用 MVC,则完全没有必要。在 MVC 中您需要做的就是将请求准确地路由到它需要去的地方。但正如 mjwillis 所指出的,如果您解释您要解决的业务问题,将会有所帮助。如果您尝试更改浏览器的 URL,那么您只需要重定向即可。
-
@mjwills @NightOwl888 这与问题无关,但这是我的业务问题。发生错误时,我需要渲染上一个(请求)页面,并在顶部添加一个警告框。我的 Web.config 配置为在出错时执行路径
/error。我的错误处理程序会检查引用者并在可能的情况下传输请求。 -
IIS 的错误处理会在查询字符串中附加未转义的数据 (see this)。我想在传输请求之前删除这个无效的查询字符串。
-
你真的需要首先重定向到错误页面吗?一个潜在的解决方案是创建一个全局过滤器来捕获错误发生的时间,并在 ViewBag 中填充您想要在警报框中显示的内容(无需导航到错误页面)。当然,您会错过在 ASP.NET 执行之前发生的任何错误,但这些错误对您的用例有多重要?
标签: c# asp.net .net asp.net-mvc iis