Một điều mà mọi người thường mắc phải khi lập trình web với ASP.NET và Url-Rewriting đó là việc phải xử lý tình huống postback. Giả sử bạn đã rewrite url của bạn thành http://lichsu.vn/1/Thoi-trang.html, nhưng khi bạn postback lại server thì lúc đó url trên địa chỉ trình duyệt lại gọi về http://lichsu.vn/Categories.aspx?id=1.
Cách xử lý cũng rất đơn giản, trong hàm Page_Load của trang bạn thêm vào như sau:
if (!Page.IsPostBack)
{
form1.Action = Request.RawUrl;
}
Tóm lại đơn giản là bạn chỉ cần thêm một vài dòng code như trên là có thể không bị lỗi khi postback nữa.Chúc các bạn vui vẻ (to be continued).
Sử dụng CollectionPager khi rewrite url và một số lỗi phát sinh khi đưa web lên server
Nếu trong Project của bạn có sử dụng thư viện CollectionPager.dll để phân trang và cũng sử dụng rewrite url, nếu để mặc định, khi bạn nhấn vào số trang sẽ bị lỗi. Trong trường hợp này bạn khắc phục bằng cách set thuộc tính của CollectionPager PagingMode=”PostBack”, và trong trang Codebehind khi gọi hàm dùng để phân trang dữ liệu phải đưa ra ngoài khối if(!Page.IsPostBack) – nếu trang đó có sử dụng.
Một số lỗi phát sinh khi upload web lên server:
- Lỗi 404 không tìm thấy trang đó trên server, có thể do IIS server của nhà cung cấp hosting chưa cấu hình để bạn có thể rewrite url. Bạn nên liên lạc với bộ phận kỹ thuật của nhà cung cấp yêu cầu cấu hình cho bạn.
- Một lỗi nữa, là bạn rename phần mở rộng của file thành .html nên IIS sẽ hiểu website của bạn là web tĩnh và có thể sinh lỗi. Cách khắc phục bạn có thể chỉ rewrite url và vẫn giữ nguyên phần mở rộng là .aspx, hoặc cũng phải liên lạc với hỗ trợ kỹ thuật của bên cung cấp hosting giúp bạn cấu hình IIS để chạy .html.
Kết luận:
Trên đây là một số bài viết liên quan đến rewrite url trong asp.net và một số lỗi thường gặp, tôi hy vọng qua bài viết này các bạn sẽ có một cái nhìn tổng thể hơn về vấn đề rewrite url.
18:17
Unknown
0 nhận xét :
Đăng nhận xét