2010-07-16 39 views
5

Tôi gặp phải lỗi sau khi tôi rời khỏi trang web của mình không hoạt động trong một thời gianTrả lời Chuyển hướng không thể được gọi trong Page callback?

"Response.Redirect.cannot được gọi trong gọi lại trang".

Tôi đang lưu trữ id người dùng trong phiên và trong khi tải trang, tôi kiểm tra để xem id người dùng có tồn tại không nếu tôi chuyển hướng họ đến trang đăng nhập.

Tôi đang sử dụng các điều khiển devexpress, Làm cách nào để chuyển hướng hoạt động?

+1

thể trùng lặp http: // stackoverflow.com/questions/1538749/how-to-avoid-response-redirect-cannot-be-called-in-a-page-callback –

+0

@Lucas - Tôi không không nghĩ vậy. Người hỏi đó chỉ muốn dừng lỗi và hài lòng với việc sử dụng 'if (! Page.IsCallback)' Tôi nghĩ @Kyle muốn một số cách để chuyển hướng người dùng đến trang đăng nhập nếu phiên của họ đã hết hạn. –

Trả lời

1

Bạn không thể chuyển hướng để làm việc trong gọi lại. Có lẽ thay vì làm Response.Redirect trên máy chủ, bạn có thể viết một số giá trị trong một khối <script type="text/javascript"/> và đặt window.location.href (chuyển hướng) ở phía máy khách?

2

Bạn thường có thể tắt tính năng gọi lại cho các điều khiển devexpress như ASPxGridView bằng thuộc tính "EnableCallbacks". Điều này rõ ràng sẽ gây ra các điều khiển để sử dụng postbacks, nhưng nó cũng sẽ cho phép Response.Redirect thực hiện công việc của mình.

2

HttpResponse.RedirectLocation tài sản trên MSDN làm việc cho tôi ở cùng một vấn đề

1

Bạn có thể sử dụng:

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

Tham khảo tại KA18851 trong DevExpress