If you look back to the Order page in figure 11-7, you can see that th dịch - If you look back to the Order page in figure 11-7, you can see that th Việt làm thế nào để nói

If you look back to the Order page

If you look back to the Order page in figure 11-7, you can see that the last portion of its friendly URL is the parameter that contains the product ID for the product that’s displayed. Then, if you look at the code in figure 11-8, you can see that a dynamic route has been created for this page with an empty string as the default value for the ProductID parameter. This means that the code-behind file for the Order page has to do something with the parameter that it receives.
Figure 11-10 starts by showing one version of a Load event handler for the Order page. This handler checks the IsPostBack property, and binds the drop¬down list to its SQL data source if this is the initial load of the page. This is the same as the code in previous versions of the Order page.
But next, this handler uses the Values collection of the page’s RouteData property to get the value of a URL parameter named “productID”. If it finds one, it sets the selected value of the drop-down list to that value. The selected value is then used by the ShowSelectedProduct method to get and display the product data.
From a coding standpoint, nothing is wrong with this code. It displays the right product data when another page sends a URL parameter or when its own drop-down list posts back to the page. The problem is the URL that is displayed when a user selects a new product in the drop-down list. For example, figure 11-7 shows the page that is rendered when the id for the Deranged Cat product has been sent to the Orders page: /Shopping/Order/catOl. But if the user then selects “Hippie” from the drop-down list, the Hippie data will be displayed but the URL will still be /Shopping/Order/catOl.
The second example in this figure fixes this problem by improving the Load event handler, adding an event handler for the SelectedlndexChanged event of the drop-down list, and adding an AddProductldToUrlAndRedirect method. Here’s how it works.
When the drop-down selection changes, the Load event is called, but the Load event code doesn’t run because it is a postback. As a result, the execution continues with the event handler for the SelectedlndexChanged event. Then, this hander calls the AddProductldToUrlAndRedirect helper method, which builds a friendly URL based on the selected value of the drop-down list, and then passes the new URL to the Redirect method of the Response object.
This causes the page to be reloaded with the new URL, and since it isn’t a postback, all the code in the Load event handler runs. Then, since the new URL contains a parameter for the selected product, the code retrieves it and uses it to set the selected value and display product information.
The revised Load event handler calls the same helper method when no productID can be found in the URL, which will happen when the user first navigates to the Order page. In that case, the selected value of the drop-down list will be the first product in the list, so that’s what will display on the page and in the URL after the page reloads.
This correction uses a design pattern called the Post-Redirect-Get (PRG) pattern. It is commonly used in ASP.NET MVC applications and also to correct backbutton problems, as you’ll see later in the book
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Nếu bạn nhìn lại vào trang thứ tự trong hình 11-7, bạn có thể nhìn thấy phần cuối của URL thân thiện là tham số có chứa các ID sản phẩm cho sản phẩm sẽ được hiển thị. Sau đó, nếu bạn nhìn vào mã trong hình 11-8, bạn có thể thấy rằng một tuyến đường năng động đã được tạo ra cho Trang này với một chuỗi rỗng là giá trị mặc định cho tham số ProductID. Điều này có nghĩa rằng các tập tin mã phía sau cho trang trật tự đã làm một cái gì đó với tham số mà nó nhận được.Hình 11-10 bắt đầu bằng cách hiển thị một phiên bản của một xử lý sự kiện tải cho trang đặt hàng. Xử lý này sẽ kiểm tra các tài sản IsPostBack, và liên kết danh sách drop¬down với các nguồn dữ liệu SQL nếu đây là tải trang, ban đầu. Đây là giống như mã trong các phiên bản trước của trang đặt hàng.Nhưng sau đó, xử lý này sử dụng bộ sưu tập giá trị của trang RouteData tài sản để có được giá trị của tham số URL tên là "productID". Nếu nó tìm thấy một, nó là tập hợp giá trị được chọn trong danh sách thả xuống tới giá trị đó. Giá trị được chọn sau đó được sử dụng bởi phương pháp ShowSelectedProduct để có được và hiển thị dữ liệu sản phẩm.Từ một quan điểm mã hóa, không có gì là sai với mã này. Nó sẽ hiển thị dữ liệu sản phẩm phù hợp khi một trang sẽ gửi một tham số URL hoặc khi riêng của mình danh sách thả-xuống bài viết trên về trang. Vấn đề là URL được hiển thị khi người dùng chọn một sản phẩm mới trong danh sách thả xuống. Ví dụ, con số 11-7 cho thấy trang được trả lại khi các id cho các sản phẩm hư hỏng con mèo đã được gửi đến trang đơn đặt hàng: /Shopping/Order/catOl. Tuy nhiên, nếu người sử dụng sau đó chọn "Hippie" từ danh sách thả-xuống, dữ liệu Hippie sẽ được hiển thị nhưng URL sẽ vẫn là /Shopping/Order/catOl.Ví dụ thứ hai trong con số này khắc phục vấn đề này bằng cách cải thiện xử lý sự kiện tải, thêm một trình xử lý sự kiện cho sự kiện SelectedlndexChanged của danh sách thả-xuống, và thêm một phương pháp AddProductldToUrlAndRedirect. Dưới đây là cách hoạt động.Khi lựa chọn thả xuống thay đổi, sự kiện tải được gọi là, nhưng tải sự kiện mã không chạy vì nó là một postback. Kết quả là, thực hiện tiếp tục với bộ xử lý sự kiện cho các sự kiện SelectedlndexChanged. Sau đó, hander này gọi phương pháp helper AddProductldToUrlAndRedirect, xây dựng một URL thân thiện dựa trên giá trị được chọn trong danh sách thả-xuống, và sau đó vượt qua URL mới với phương pháp chuyển hướng của các đối tượng phản ứng.Điều này gây ra trang để được nạp lại với URL mới, và kể từ khi nó không phải là một postback, tất cả các mã trong xử lý sự kiện tải chạy. Sau đó, kể từ khi mới URL có chứa một tham số cho các sản phẩm được lựa chọn, mã lấy nó và sử dụng nó để thiết lập giá trị được chọn và hiển thị thông tin sản phẩm.The revised Load event handler calls the same helper method when no productID can be found in the URL, which will happen when the user first navigates to the Order page. In that case, the selected value of the drop-down list will be the first product in the list, so that’s what will display on the page and in the URL after the page reloads.This correction uses a design pattern called the Post-Redirect-Get (PRG) pattern. It is commonly used in ASP.NET MVC applications and also to correct backbutton problems, as you’ll see later in the book
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Nếu bạn nhìn lại các trang theo thứ tự trong hình 11-7, bạn có thể thấy rằng phần cuối của URL thân thiện của nó là tham số có chứa các sản phẩm ID cho các sản phẩm đó là hiển thị. Sau đó, nếu bạn nhìn vào các mã trong hình 11-8, bạn có thể thấy rằng một tuyến đường năng động đã được tạo ra cho trang này với một chuỗi rỗng như các giá trị mặc ​​định cho tham số ProductID. Điều này có nghĩa rằng các tin mã phía sau cho các trang theo thứ tự có để làm điều gì đó với các tham số mà nó nhận được.
Hình 11-10 bắt đầu bằng cách hiển thị một phiên bản của một trình xử lý sự kiện Load của trang Order. Xử lý này sẽ kiểm tra các tài sản IsPostBack, và liên kết với các danh sách drop¬down với nguồn dữ liệu SQL của nó nếu điều này là tải ban đầu của trang. Điều này cũng giống như các mã trong các phiên bản trước đó của các trang theo thứ tự.
Nhưng tiếp theo, xử lý này sử dụng các bộ sưu tập giá trị của tài sản RouteData của trang để có được giá trị của một tham số URL có tên "productID". Nếu nó tìm thấy một, nó đặt giá trị được lựa chọn trong danh sách thả xuống để giá trị đó. Thì giá trị được lựa chọn được sử dụng theo phương pháp ShowSelectedProduct để có được và hiển thị các dữ liệu sản phẩm.
Từ một quan điểm mã hóa, không có gì là sai với mã này. Nó hiển thị các dữ liệu sản phẩm khi trang khác gửi một tham số URL hoặc khi mình thả xuống danh sách bài viết của mình trở lại trang. Vấn đề là các URL được hiển thị khi người dùng lựa chọn một sản phẩm mới trong danh sách thả xuống. Ví dụ, con số 11-7 cho thấy các trang được hiển thị khi id cho các sản phẩm hư hỏng Cát đã được gửi đến các đơn đặt hàng trang: / Shopping / Order / catOl. Nhưng nếu người dùng sau đó chọn "Hippie" từ danh sách thả xuống, các dữ liệu Hippie sẽ được hiển thị nhưng URL vẫn sẽ là / Shopping / Order / catOl.
Ví dụ thứ hai trong hình này sửa chữa vấn đề này bằng cách cải thiện việc xử lý tải sự kiện , thêm một xử lý sự kiện cho sự kiện SelectedlndexChanged của danh sách thả xuống, và thêm một phương pháp AddProductldToUrlAndRedirect. Đây là cách nó hoạt động.
Khi thay đổi lựa chọn thả xuống, các sự kiện Load được gọi, nhưng mã tải sự kiện không chạy vì nó là một postback. Kết quả là, việc thực hiện tiếp tục với các xử lý sự kiện cho sự kiện SelectedlndexChanged. Sau đó, hander này gọi phương thức helper AddProductldToUrlAndRedirect, trong đó xây dựng một URL thân thiện dựa trên các giá trị được chọn trong danh sách thả xuống, và sau đó vượt qua các URL mới với phương pháp Redirect của đối tượng Response.
Điều này gây ra các trang được nạp lại với URL mới, và vì nó không phải là một postback, tất cả các mã trong xử lý sự kiện tải chạy. Sau đó, kể từ khi các URL mới chứa các thông số cho các sản phẩm được lựa chọn, mã lấy nó và sử dụng nó để thiết lập các thông tin giá trị và sản phẩm màn hình lựa chọn.
Việc xử lý tải sự kiện sửa đổi gọi phương thức helper tương tự khi không có productID có thể được tìm thấy trong các URL , mà sẽ xảy ra khi người dùng đầu tiên hướng tới các trang theo thứ tự. Trong trường hợp đó, các giá trị được chọn trong danh sách thả xuống sẽ là sản phẩm đầu tiên trong danh sách, vì đó là những gì sẽ hiển thị trên trang và trong các URL sau khi tải lại trang.
Đợt điều chỉnh này sử dụng một mẫu thiết kế được gọi là Post-Redirect -nhận (PRG) mô hình. Nó thường được sử dụng trong các ứng dụng ASP.NET MVC và cũng để sửa chữa vấn đề backbutton, như bạn sẽ thấy trong cuốn sách này
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: