237
Chương 7: ASP.NET và Web Form
Sử dụng phương thức
HttpResponse.Redirect
để chuyển người dùng đến một
URL mới, hoặc sử dụng phương thức
HttpServerUtility.Transfer
(nhanh hơn)
để chuyển người dùng đến một Web Form ASP.NET khác trên cùng server.
Cách dễ nhất để chuyển người dùng từ một trang này đến một trang khác là sử dụng phương
thức
HttpResponse.Redirect
và cấp một URL mới. Bạn có thể truy xuất đối tượng
HttpResponse
hiện tại thông qua đối tượng
HttpContext
hoặc sử dụng thuộc tính
Reponse
của
đối tượng
Page
hoặc
Control
. Phương thức thụ lý sự kiện dưới đây (đáp ứng cho một cú nhắp
chuột vào
Button
) sẽ chuyển người dùng đến một trang ASP.NET mới:
private void cmdRedirect_Click(object sender, System.EventArgs e) {
Response.Redirect("newpage.aspx");
}
Phương thức
Redirect
có thể làm việc với URL tương đối (chỉ đến những tài nguyên trong
cùng thư mục ảo), và với URL đầy đủ. URL có thể chỉ đến trang ASP.NET khác, kiểu tài liệu
khác (như trang HTML hoặc hình ảnh), và web-server khác.
Phương thức
Redirect
gửi chỉ thị chuyển hướng đến trình duyệt. Kế đó, trình duyệt sẽ yêu cầu
trang mới. Kết quả là trình duyệt phải thực hiện hai chuyến đến web-server, và web-server
phải xử lý thêm một yêu cầu nữa. Một tùy chọn hiệu quả hơn là sử dụng phương thức
HttpServerUtility.Transfer
, phương thức này sẽ chuyển sự thực thi đến một trang ASP.NET
khác trên cùng web-server. Ví dụ:
private void cmdRedirect_Click(object sender, System.EventArgs e) {
Server.Transfer("newpage.aspx");
}
Phương thức
Transfer
không cần thêm một chuyến đến client, nhưng nó sẽ không làm việc
nếu bạn cần chuyển sự thực thi đến một server khác hoặc một kiểu tài nguyên khác với Web
Form (bao gồm trang ASP cổ điển).
2.
2.
Duy trì tr ng thái gi a các yêu c u c a trang
ạ
ữ
ầ ủ
Duy trì tr ng thái gi a các yêu c u c a trang
ạ
ữ
ầ ủ
Bạn cần lưu trữ vài thông tin đặc thù của người dùng giữa các lần postback của
trang.
Sử dụng view state (trạng thái nhìn), query string argument (đối số chuỗi truy
vấn), session state (trạng thái phiên làm việc), hoặc cookie, tùy thuộc vào nhu cầu
của bạn.
ASP.NET là một mô hình lập trình phi trạng thái (stateless programming model). Mỗi khi một
postback được phát sinh, mã sẽ nạp vào bộ nhớ, thực thi, và được giải phóng khỏi bộ nhớ.
Nếu muốn giữ lại vết của thông tin sau khi mã đã hoàn tất việc xử lý, bạn phải sử dụng các
kiểu quản lý trạng thái (state management).