Response.Redirect无法在AJAX中工作

时间:2011-10-27 08:44:35

标签: asp.net ajax

当我使用Response.Redirect时,我正在收到以下警告框,但我需要在服务器端代码中需要它以在所有条件成功后更改页面。

我怎么能摆脱这个问题?

错误:

  

sys.webforms.pagerequestmanagerparseerrorexception:消息   从服务器收到的邮件无法解析。共同的casuse s为此   错误是通过调用response.write()修改响应时,   启用了响应过滤器,httpmodules或服务器跟踪。细节:   在

附近解析时出错
<!DocType html PUB'.

2 个答案:

答案 0 :(得分:1)

当您发送AJAX请求时,您需要接收AJAX响应,其中将是重定向的URL。然后使用javascript重定向:Location.href =。

就像这个例子:

        $.post(
            "http://dummysite.com/Request",
            parameters,
            function (response) {
                location.href = response.returnedUrl;
            },
            'json');

答案 1 :(得分:1)

假设您正在使用UpdatePanel,请将以下ScriptModule添加到您的web.config中:

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

您的另一个选择是注册控件,将重定向作为回发控件。使用UpdatePanel,您可以通过添加PostBackTrigger来完成此操作。您还可以使用脚本管理器:

ScriptManager.GetCurrent(Page).RegisterPostBackControl(Button1);