【问题标题】:Cannot do response.redirect from page with Ajax controls无法使用 Ajax 控件从页面执行 response.redirect
【发布时间】:2009-07-31 22:25:39
【问题描述】:
我有一个包含许多用户控件的页面,每个控件都使用 Ajax。当我加载这个页面时,在某些条件下,我想做一个 response.redirect;但是 response.redirect 语句被 Ajax 代码捕获并且永远不会发生。
如何从包含 Ajax 控件的页面执行 response.redirect?
谢谢....
【问题讨论】:
标签:
asp.net
ajax
asp.net-ajax
response.redirect
【解决方案1】:
您可以使用 Javascript 来重定向,而不是使用 Response.Redirect。
window.location = "[url to redirect]";
【解决方案2】:
将此添加到您的 web.config:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
【解决方案3】:
重定向不会重定向用户,而是重定向 XmlHttpRequest,而不是用户为访问页面而发出的请求。您可以根据 ajax 调用返回的值在 javascript 中设置 location.href。