Một vấn đề tôi gặp phải một lần nữa là xử lý chuyển hướng đến trang trước sau khi người dùng chạy một số hành động như nhấp vào liên kết 'Quay lại ...' hoặc lưu bản ghi họ đang chỉnh sửa.Một cách thông minh để xử lý URL trả về trong môi trường MVC
Trước đây bất cứ khi nào tôi cần biết trang nào cần quay lại, tôi sẽ cung cấp thông số returnURL
cho chế độ xem hiện tại của mình.
http://blah.com/account/edit/1?returnURL="account/index"
Đây không phải là cách rất sạch sẽ để xử lý tình huống này, vì đôi khi URL trả về chứa thông số như chuỗi tìm kiếm, v.v ... phải được bao gồm trong URL.
http://blah.com/account/edit/1?returnURL="account/index?search="searchTerm""
Ngoài ra, điều này tạo ra một vấn đề khi người dùng có thể đi về phía trước một trang khác trước khi trở lại với trang có returnURL
bởi vì bạn phải vượt qua returnURL
qua tất cả các trang truy cập.
Chỉ cần gọi chức năng Quay lại của trình duyệt không thực sự đủ, bởi vì bạn có thể muốn trang làm mới, ví dụ: để hiển thị các chỉnh sửa bạn vừa lưu ở trang trước.
Vì vậy, câu hỏi của tôi là, có ai tìm thấy một cách thông minh để xử lý loại tình huống này, cụ thể trong môi trường MVC không?
Lưu ý: Tôi đang sử dụng ASP .NET MVC vì vậy nếu có thể tôi muốn câu trả lời liên quan đến điều đó, tuy nhiên mọi ý tưởng đều được hoan nghênh.
Tôi muốn thêm rằng tôi sẽ làm một kiểm tra cho phiên, sau đó phá hủy nó ở mỗi lần bắt đầu quá trình tải trang. Sau đó đặt nếu cần thiết ở cuối quá trình tải trang. Bằng cách này, một phiên sẽ chỉ được đặt nếu cần và có thể được kiểm tra phổ biến trên bất kỳ trang nào ... HTH – Don
Cookie không hoạt động giống như truyền tham số trong URL. Thử sử dụng cookie với cùng một trang web mở trong nhiều tab. –
Phiên làm cho rất nhiều ý nghĩa, nhưng những gì về tình hình mà người dùng đang sử dụng nhiều tab trình duyệt trong cùng một phiên? Điều đó sẽ không gây ra hành vi bất ngờ khi chuyển đổi các tab sau đó nhấp vào "Quay lại Danh sách" một lúc sau? – devuxer