Tôi gặp sự cố với ứng dụng ASP.NET đơn giản và nút quay lại sau khi đăng lại.Trình duyệt ASP.NET hiển thị "trang web đã hết hạn" cho nút quay lại (sau khi đăng lại)
Trang được đề cập có biểu mẫu đơn giản trên đó, một số trường văn bản v.v. và một menu thả xuống thực hiện đăng lại (tự động khởi động lại).
Luồng "bình thường" là người dùng điền vào biểu mẫu và có thể thay đổi menu thả xuống. Dựa trên giá trị thả xuống, nội dung trang có thể thay đổi.
Sự cố tôi gặp phải là sau khi người dùng đã thay đổi menu thả xuống và đăng lại đã hoàn tất thì người dùng nhấp vào nút quay lại. Họ thấy thông báo "trang web đã hết hạn" từ IE.
tôi đã thiết lập như sau:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.Private);
Nhưng điều đó dường như không có đóng đinh vấn đề.
Tiêu đề phản ứng Cache-Control thực tế đọc như: private, no-cache: "Set-Cookie"
Trong một ứng dụng ASP cổ điển với một tiêu đề phản ứng Cache-Control chỉ nút quay lại "tin" hoạt động như mong đợi sau khi "đăng lại".
Có cách nào để buộc ASP.NET đặt bộ nhớ cache kiểm soát rõ ràng thành chính xác "riêng tư" không? Hoặc bất kỳ giải pháp nào khác dẫn đến nút quay lại và đăng lại hoạt động tốt cùng nhau?
Cảm ơn!
Nó làm cho ít ý nghĩa với tôi rằng một ứng dụng ASP cổ điển mà bộ hết -1 phút, bộ nhớ cache kiểm soát tin cho phép phía sau nút làm việc "như mong đợi", nhưng một ứng dụng ASP.NET với thời hạn thiết lập để -1 phút và bộ nhớ cache kiểm soát thiết lập để "tư nhân, no-cache: thiết lập cookie" không. Điều này với tôi dường như chỉ đến "no-cache: set cookie" là vấn đề. – user505765
Tôi hiểu. Điểm khác biệt là ASP cổ điển không có hậu cảnh để tranh luận. Việc nhấp vào nút sẽ kích hoạt "Hành động" của biểu mẫu và mỗi lần tải trang hoàn toàn mới. Với ASP.NET, nếu bạn thay đổi một danh sách thả xuống, và danh sách thả xuống đó có "autopostback" được đặt thành true, thì trình duyệt thực sự xem đây là một điều hướng đến một trang mới. Đó là tất cả trong cách postbacks được thực hiện, đó là một nguồn liên tục của irtritation trong trường hợp như thế này. Về mặt kỹ thuật thay đổi một thả xuống đặt ra cho autompostback không kích hoạt "bài" tùy chọn về hình thức, nhưng WebForms mô hình làm mờ nó ... – David
Có lẽ đây là một lời giải thích tốt hơn - Để trình duyệt, mỗi postback thực sự là một chuyến viếng thăm trang mới, và nó được lưu trữ trong lịch sử, mặc dù mô hình WebForms đã cố gắng để làm cho nó có vẻ như nó không phải là như vậy để các nhà phát triển. – David