无法在页面回调中调用响应重定向?

时间:2010-07-16 23:50:04

标签: asp.net ajax devexpress

当我将网络暂停一段时间后,我收到以下错误

“Response.Redirect.can不会在Page回调中调用。”

我在会话中存储用户ID,在页面加载期间我检查 如果没有用户ID,那么我将它们重定向到登录页面。

我正在使用devexpress控件,如何让重定向工作?

7 个答案:

答案 0 :(得分:7)

尝试使用Response.RedirectLocation属性,而不是在回调期间使用。

HttpResponse.RedirectLocation Property on MSDN

答案 1 :(得分:7)

if(Page.IsCallback)         ASPxWebControl.RedirectOnCallback( “〜/的Login.aspx”);

http://documentation.devexpress.com/#AspNet/DevExpressWebASPxClassesASPxWebControl_RedirectOnCallbacktopic

答案 2 :(得分:2)

通常可以使用“EnableCallbacks”属性为ASPxGridView等devexpress控件关闭回调。这显然会导致控件使用回发,但它也会允许Response.Redirect完成其工作。

答案 3 :(得分:2)

MSDN上的HttpResponse.RedirectLocation属性对我有同样的问题

答案 4 :(得分:1)

您无法让重定向在回调中工作。也许不是在服务器上执行Response.Redirect而是在<script type="text/javascript"/>块中写一些值并在客户端设置window.location.href(重定向)?

答案 5 :(得分:1)

您可以使用:

string TARGET_URL = ...;
if(Page.IsCallback)
    DevExpress.Web.ASPxClasses.ASPxWebControl.RedirectOnCallback(TARGET_URL);
else
    Response.Redirect(TARGET_URL);

请参阅Devexpress中的KA18851

答案 6 :(得分:0)

实际上,在回调期间无法使用Response.Redirect。请参考 关注这方面的博客文章。

http://community.devexpress.com/blogs/aspnet/archive/2008/08/25/how-to-redirect-to-login-page-after-session-timeout.aspx