C# 重定向的行为与UpdatePanel中的行为不同

C# 重定向的行为与UpdatePanel中的行为不同,c#,asp.net,response.redirect,C#,Asp.net,Response.redirect,在我的web应用程序中的任何地方,我都使用如下重定向: Response.Redirect("~/SearchResults.aspx", true); 这总是把我带到正确的一页 但现在我在ASP.NET UpdatePanel中的一个按钮的onclick事件中执行此操作,它试图将我带到以下地址: 有人知道如何解决这个问题吗 Response.Redirect应该在更新面板中工作,这是已知的异常之一 但是,至少时间是这样的,如果web.config中没有类似的块,它将无法工作: &l

在我的web应用程序中的任何地方,我都使用如下重定向:

Response.Redirect("~/SearchResults.aspx", true); 
这总是把我带到正确的一页

但现在我在ASP.NET UpdatePanel中的一个按钮的onclick事件中执行此操作,它试图将我带到以下地址:


有人知道如何解决这个问题吗

Response.Redirect应该在更新面板中工作,这是已知的异常之一

但是,至少时间是这样的,如果web.config中没有类似的块,它将无法工作:

   <httpModules>
       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </httpModules>


如果没有下面博客中的选项2,我认为默认情况下不支持此功能。 不过,有几种解决方案

此外,我还了解到,您可以在其中放置一个按钮,并在该按钮周围放置一个元素,然后单击“执行重定向”,但从未尝试过该方法:


以上所有建议我都试过了,但都没有成功。问题仍然存在,所以现在我已经解决了,通过从更新面板中取出重定向按钮。经过一段时间的思考,我得出结论,这也是按钮最符合逻辑的位置,因为它不调用面板的更新,而是整个页面的更新

我终于找到了这个问题的真正答案。事实证明,这不是我之前发布的修复。尽管当时这是一个很好的解决办法,但真正的问题是我正在使用的CMS带来了一个过时版本的MicrosoftAjaxWebForms.js。更新此脚本,解决了所有异步回发重定向问题

下面是一个解决方法,如果您只需要一个按钮,可以从更新面板中执行完整的回发和重定向

<asp:PostBackTrigger ControlID="btnRedirectButton" /> 


嘿,我先在这里找到了链接:)嗯?你在19分钟前回答了,我在21分钟前回答了:我都试过了,但似乎都不管用。ScriptModule已包含在我的项目中。重定向方法会导致一个警告,该警告涉及一个潜在危险的Url,而JavaScript解决方案会。。没什么。我不知道你在使用什么浏览器,但我会附加你的Firefox,并查找异步调用返回的任何错误代码。亚当斯第二个建议也值得一试。@Russ-你21岁时的编辑包括了链接,你原来的没有,我的没有。我的编辑在我的发布中添加了第二个链接!:)