Công ty phát triển công nghệ IT Express IT Express Co., LTD
9/10 5139 bình chọn

Xử lý lỗi Rewrite URL trong Asp Net khi submit site

14:13 - 27/09/2015
Trong việc rewrite website Asp.net thường gặp một số lỗi xẩy ra không mong muốn. Một trong những lỗi đó là khi người dùng submit một form nào đó trên site thì URL sẽ sinh ra các parma đã được rewrite
Theo yêu cầu thì các website hiện nay đều phải đáp ứng được những tiêu chí tối thiểu là các URL phải thân thiện với bộ máy tìm kiếm và người dùng.
Nếu đang lập trình website bằng asp.net thì URL chưa được rewrite thường có dạng: http://domain.com/Product.aspx?Lang=v&ID=1 và sau đó chúng ta thực hiện Rewrite URL (viết lại các đường dẫn) thành: http://domain.com/vi/san-pham.html (hoặc một cách tương tự như thế). 
Tuy nhiên, một điều đơn giản thôi nhưng nếu bạn không biết đôi khi cũng phải mò cả tiếng, thậm chí là cả buổi trời
Đó là trường hợp khi người dùng submit một form bất kỳ trên site thì URL nhận được trình duyệt sẽ có dạng : http://domain.com/vi/san-pham.html?Lang=v&ID=1 
?Lang=v&ID=1 là phần tạo ra khi ta submit form trên site một lần, nếu người dùng submit site 2 lần thì phần nó tạo thêm sẽ 2 lần "?Lang=v&ID=1&Lang=v&ID=1". Nếu như thế thử tượng tượng xem, người dùng submit một URL phức tạp khoảng 100 lần thì chuyên gì sẽ xẩy ra?
Để ngăn chặn việc này rất đơn giản:
Tại trang masterpage (hoặc trang nào chứa thẻ form <id="form1" runat="server">
Thêm vào đoạn 
Trong file .cs
                          form1.Action = Request.RawUrl;
Trong phần Page_load()
Bây giờ thì chạy lại URL và submit site để kiểm thử nhé!
Xem video để thấy trực quan hơn:
Chúc các bạn thành công!