Response.重定向不能在会话超时的页面回调中调用
Response.Redirect cannot be called in a Page callback on session timeout?
我已经使用 AJAX 实现了一个回调方法 ASP.Net 并希望重定向到此回调何时发生到另一个页面。由于从回调请求时无法重定向。我收到错误"Response.Redirect cannot be called in a Page callback"
.
我通常如何为任何触发的回调事件进行回调重定向?例如:我有一个RadComboBox,它在radcombobox中键入的每个字母上实现对服务器的回调。假设现在在请求 RadComboBox 的项目时,出现会话超时,应用程序需要重定向到另一个页面。我该怎么做?
在回调中无法执行脚本时,脚本类似于ScriptManager.RegisterStartUpScript(this.gettype(),"script","Do javascript redirect to session timeout page ?",true);
我看到解决这个问题的唯一其他方法可能是在我的 MasterPage Load 方法中添加一个检查,该方法检查会话是否超时并添加到 HttpCookie,然后在 MasterPage html 上添加一个具有超时间隔的 javascript 方法,该方法检查 cookie 中的值,以便它可以重定向到另一个页面?!.现在,此方法需要一直运行可能会导致一些与性能相关的问题?
当请求来自回调时,还有其他方法可以实现重定向吗?我已经尝试了响应重定向位置,但似乎没有效果?
我从事的 Web 项目实现了会话超时时的重定向我面临的问题是在回调期间,如果会话超时,它曾经导致此错误。
我检查会话超时的实现是在登录期间设置一个会话变量,并在每次页面加载期间检查此会话值是否为 null,然后在超时超时后重定向到登录。所以现在作为一种解决方案,我在控件中显示一条消息,导致"会话超时"的回调,在我的母版页中检查会话超时添加代码,以便它可以重定向到登录页面之前有一个检查。
//--------------------------------------------------------------------------
protected override void OnLoad(EventArgs e)
{
if (!Page.IsCallback)
{
Response.Redirect("~/Login.aspx",true);
}
你可以尝试Server.Transfer
方法,看看它是否炒锅。
另一种选择是将 True/False 发送回客户端,并具有接受此内容并进行重定向的 javascript 方法。
下面是一个如何使用jQuery调用服务器端方法并接受其结果的示例。
http://www.asp.net/ajaxlibrary/jquery_webforms_retrieve_data_from_pagemethod.ashx
- 成功回调永远不会被JSONP请求调用
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 如何在点击超链接时调用fullcalendar回调
- 在初始函数完成之前调用回调函数
- 未为路由器应用程序调用Node.Js的回调
- 对中的函数调用进行排序是回调的唯一方法
- Node.js exec调用从不调用回调
- 如何从参数数组中调用回调
- 当我的单元测试失败时,回调被调用了两次
- 回调函数(如afterMove)不被调用
- 如何使用jQuery等待来自回调的异步调用
- FireFox webrtc createoffer,没有任何回调调用
- 如何识别函数是作为方法调用还是作为回调调用
- jquery方法不是从angular回调调用的
- 从回调调用asyncwait
- 你可以使用PhoneGap和iOS从本地代码(而不是回调)调用javascript函数吗?
- Backbone model.fetch()回调(调用setTimeout)中的作用域问题
- React.js:你用一个不可调用的回调调用了' setState '
- 从图表.js选项回调调用 TypeScript 函数
- 如何将js函数从异步调用转换为回调调用