2011-06-28 46 views
7

Tôi có một trang gọi một trang khác với một số tham số chuỗi truy vấn. Tôi muốn quay lại trang đó sau khi nhấp vào nút.ASP.net Chuyển hướng đến trang gọi

Tôi phải đề cập rằng tôi viết mã đó trong điều khiển người dùng và tôi không biết trang nào được gọi là trang thứ hai đó.

Có điều gì đó giống như nút Quay lại trong trình duyệt không?

Trả lời

3

Bạn có thể nhìn vào Cross Page Posting.

Hoặc, nếu bạn tạo liên kết theo chương trình, bạn có thể bao gồm returnUrl trong url, ví dụ: http://localhost/secondpage.aspx?returnurl=firstpage.aspx

Sau đó, bạn có thể đọc tham số chuỗi truy vấn này trong trang thứ hai và thực hiện như chuyển hướng trở lại khi công việc của bạn hoàn tất.

12

đơn giản cách sử dụng javascript về phía khách hàng với

window.back(); 

Đối với phía máy chủ bạn cần phải lưu referer url trong Page_Load:

if(!Page.IsPostback) 
{ 
    ViewState["GoBackTo"] = Request.UrlReferrer; 
} 

và vào một nút bấm sử dụng Response.Redirect:

Response.Redirect(ViewState["GoBackTo"].ToString()); 

chỉnh sửa: xin lưu ý nhận xét của ppumkin bên dưới!

+0

các UrlReferrer đang không hoạt động tất cả các thời gian, làm thế nào bao giờ hết đây là một cách tốt hơn so với robert. – Aristos

+2

Không phải lúc nào nó cũng hoạt động nếu họ đến trực tiếp trang. Chỉ cần bắt nó ra như 'if (ViewState [" GoBackTo "] == null)' và nếu có null chỉ chuyển hướng đến trang đăng nhập mặc định như 'account.aspx' hoặc tương tự. Điều này là tốt đẹp nếu bạn không muốn sử dụng xác thực biểu mẫu +1 – ppumkin

2

Bạn có thể sử dụng Request.UrlReferrer, nhưng không nhất thiết phải gửi từ khách hàng tất cả các thời gian:

 Response.Redirect(Request.UrlReferrer.AbsoluteUri); 
1

đưa dòng mã này trên các sự kiện tải trang

Btn_Back.Attributes.Add("onClick", "javascript:history.back(); return false;"); 
Các vấn đề liên quan