Tôi nghĩ câu trả lời hay nhất là: Nó phụ thuộc vào trình duyệt, đặc biệt là sau một bài đăng/đăng lại.
Trình duyệt cũ hơn được sử dụng để bật lên hộp thoại xác nhận với hiệu ứng "trang chứa dữ liệu POST sẽ được gửi lại" và bạn có thể tiếp tục (gửi lại) hoặc hủy. Vì mọi thứ xảy ra trong ASP.NET WebForms là một phần của phần tử FORM
(ViewState, sự kiện, v.v.), điều này sẽ làm cho toàn bộ vòng đời được lặp lại. Tất nhiên, điều này không gây ra vấn đề gì với việc đệ trình trùng lặp, do đó, nhiều trang web phải đưa ra giải pháp cho vấn đề song công, và ngày nay hầu hết các trình duyệt chỉ tìm nạp trang từ bộ nhớ cache thay thế.
... Đó là trừ khi bạn ghi đè tiêu đề kiểm soát bộ nhớ cache và buộc trình duyệt không lưu trữ trang trong bộ nhớ cache. Rõ ràng, trong trường hợp đó, nó không thể được lấy ra từ bộ nhớ cache, vì vậy nó thường sẽ kết thúc được gửi lại. Nhưng, một lần nữa, nó phụ thuộc vào trình duyệt - ví dụ, một số trình duyệt sẽ không cho phép gửi lại qua SSL, vì vậy nếu đó là giao thức được sử dụng thì người dùng sẽ chỉ thấy thông báo cho biết trang đã hết hạn/không thể được hiển thị.
Nghĩ về nó, có lẽ một câu trả lời hay hơn là: Là một nhà thiết kế trang, bạn thực sự không thể phụ thuộc vào bất kỳ hành vi cụ thể nào từ trình duyệt của người dùng khi nhấn nút Quay lại. Nếu việc gửi trùng lặp có thể có tác dụng phụ tiêu cực (chẳng hạn như tính phí thẻ tín dụng hai lần), thì bạn cần thực hiện các biện pháp thích hợp để ngăn điều đó xảy ra. Đó là thực hành tốt anyway vì nó hoàn toàn có thể cho một người dùng chỉ đơn giản là kích đúp vào nút "gửi" một cách tình cờ.
Tôi đồng ý với câu trả lời của Aaronaught. Tôi sẽ không cố gắng viết bất kỳ mã nào giả định rằng nút 'quay lại' sẽ hoạt động theo một cách nhất định trên tất cả các trình duyệt. – jessegavin
Tôi nghĩ rằng bạn đã xem xét một kịch bản khác của việc sao lưu cùng một trang bằng cách sử dụng điều khiển và sau đó nhấn nút BACK ... Tôi có đúng không? – Manish
@Manish: Vấn đề gì không nhất thiết là trang * hiện tại của người dùng có dữ liệu 'POST' hay không, nhưng có hay không trang * trước đó * (trang mà nút Quay lại sẽ đưa họ đến) có dữ liệu' POST' . Điều đó bao gồm cả hai kịch bản - quay trở lại từ một postback, và trở lại từ một trang mới khi trang trước đó có một postback (hoặc chỉ là 'POST'). – Aaronaught