16 chuong 16

42 56 0
16 chuong 16

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG 16 : TÍNH NĂNG ĐIỀU HƯỚNG NÂNG CAO Trong chương trước, giới thiệu cho bạn cách sử dụng hệ thống điều hướng để xử lý Liên kết ngoại , điều phần học Bạn cần sử dụng sơ đồ URL để tạo Liên kết ngoại ,từ nhúng URL vào views bạn, từ người dùng nhấp vào liên kết phản hồi lại ứng dụng bạn để nhắm đến controller action Trong chương này, cho bạn kỹ thuật khác để tạo URLs bên ngoài, cho bạn làm để tùy chỉnh hệ thống điều hướng cách thay class MVC thực đường dẫn chuẩn sử dụng tính areas MVC Framework, cho phép bạn để phá vỡ ứng dụng MVC lớn phức tạp thành phần nhỏ để dễ quản lý Tôi kết thúc chương với số lời khuyên tốt sơ đồ URL ứng dụng MVC Framework Bảng 16-1 cung cấp tóm tắt cho chương Chuẩn bị dự án ví dụ Tơi tiếp tục sử dụng dự án UrlsAndRoutes từ chương trước, cần phải thực vài thay đổi Đầu tiên, tơi xóa thư mục AdditionalControllers HomeController.cs tập tin mà chứa Để thực việc xóa, nhấp chuột phải vào thư mục AdditionalControllers chọn Xóa từ menu pop-up Đơn giản hóa đường dẫn Tơi cần phải đơn giản hóa đường dẫn ứng dụng Chỉnh sửa tập tin App_Start / RouteConfig.cs để phù hợp với nội dung hiển thị Listing 16-1 Listing 16-1 Đơn giản hóa đường dẫn RouteConfig.cs file using System.Web.Mvc; using System.Web.Routing; UrlsAndRoutes namespace { public class RouteConfig { public static void RegisterRoutes (các tuyến RouteCollection) { routes.MapMvcAttributeRoutes (); routes.MapRoute ("MyRoute", "{controller} / { action} / {id} ", new { controller =" Home ", action =" Index ", id = UrlParameter.Optional }); } } } Thêm gói tối ưu hóa Ngay sau chương tơi mơ tả areas đặc trưng, mà đòi hỏi phải có gói phần mềm cài đặt vào dự án này.Nhập lệnh sau vào giao diện điều khiển NuGet: Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0 -projectname UrlsAndRoutes Gói chứa chức để tối ưu hóa tập tin JavaScript CSS dự án, mà mô tả Chương 26 Tơi khơng thể sử dụng tính trực tiếp chương này, khu vực đặc trưng có phụ thuộc vào Cập nhật dự án Unit Test Tơi cần phải thực hai thay đổi dự án Unit Test Đầu tiên để xóa phương thức TestIncomingRoutes , mà không sử dụng chương để tạo đường dẫn bên Để tránh thất bại chạy dự án, cần loại bỏ phương thức từ tập tin RouteTests.cs Sự thay đổi thứ hai thêm tham chiếu đến namespace System.Web.Mvc , mà tơi làm cách cài đặt gói NuGet MVC vào dự án thử nghiệm Nhập lệnh sau vào giao diện điều khiển NuGet: Install-Package Microsoft.Aspnet.Mvc -version 5.0.0 UrlsAndRoutes.Tests projectname Tơi cần thêm gói MVC để tơi sử dụng số phương thức giúp đỡ người dùng để tạo URL gửi Tôi không cần phải làm điều chương cuối có hỗ trợ để giải vấn đề URL đến System.Web System.Web.Routing namespaces Tạo Liên kết ngoại Views Trong hầu hết ứng dụng MVC Framework, bạn muốn cho phép người sử dụng di chuyển từ view đến view khác bạn phải sử dụng đường link từ view đưa đến view thứ hai This is an outgoing URL Với cấu hình đường dẫn chuẩn, yếu tố HTML tạo liên kết đưa phương thức CustomVariable đến Home Controller Thơng thường URL tạo nhanh chóng đơn giản.Chúng gây khó khăn bạn thay đổi URL cho ứng dụng bạn bạn tạo URL logic mà không chuyển thành URL vật lý Sau bạn phải bao bọc tất view ứng dụng bạn cập nhật tất references Controllers bạn phương thức action, trình tẻ nhạt, dễ bị lỗi, khó khăn để thử nghiệm Một lựa chọn tốt sử dụng hệ thống điều hướng để tạo URL gửi đi, đảm bảo chương trình URL sử dụng để tạo URL động bảo đảm sơ đồ URL ứng dụng Sử dụng hệ thống điều hướng để tạo Liên kết ngoại Cách đơn giản để tạo Liên kết ngoại view gọi phương thức hỗ trợ Html.ActionLink minh họa Listing 16-2, cách thủ công mà tạo view /Views/Shared/ActionName.cshtml Listing 16-2 Sử dụng Html.ActionLink Helper Method File ActionName.cshtml Các tham số cho phương thức ActionLink đường link văn tên đường link phương thức action phải có mục tiêu cụ thể Bạn xem kết việc bổ sung cách bắt đầu ứng dụng cho phép trình duyệt để đường dẫn đến URL root, minh họa hình 16-1 Hình 16-1 HTML phương thức ActionLink tạo dựa cấu hình đường dẫn.Ví dụ, cách sử dụng quy định Listing 16-1 (và giả định quan điểm đưa yêu cầu đến Home Controller) tạo HTML sau: This is an outgoing URL Bây giờ, điều giống đường dài để tái tạo URL tay xác định nói đến, lợi ích phương pháp tự động phản ứng với thay đổi cấu hình đường dẫn Để cải cách, phải thay đổi cấu hình đường dẫn bổ sung thêm đường dẫn tập tin RouteConfig.cs , trình bày Listing 16-3 Listing 16-3 Thêm đường dẫn tập tin RouteConfig.cs Các đường dẫn làm thay đổi lược đồ URL cho yêu cầu Home controller Nếu bạn khởi động ứng dụng, bạn thấy thay đổi phản ánh HTML tạo phương thức ActionLink để hỗ trợ HTML, sau: This is an outgoing URL Bạn thấy liên kết tạo theo cách giải vấn đề bảo trì Tơi phải thay đổi lược đồ đường dẫn có liên kết ngoại tự động view Và, dĩ nhiên liên kết ngoại trở thành yêu cầu thường xuyên bạn nhấp vào liên kết, hệ thống điều hướng sử dụng lần để xác, thể hình 16-2 Hình 16-2 Ảnh hưởng cách nhấn vào liên kết làm cho Liên kết ngoại vào request đến KẾT NỐI ĐƯỜNG DẪN LIÊN KẾT NGOẠI Bạn thấy cách thay đổi đường dẫn mà sơ đồ URL tạo ra.Các ứng dụng thường xác định số đường dẫn, điều quan trọng phải hiểu đường dẫn chọn để tạo URL Các hệ thống điều hướng xử lý đường dẫn theo thứ tự để chúng thêm vào RouteCollection đối tượng truyền cho phương thức RegisterRoutes Mỗi đường dẫn kiểm tra để xem match, Đòi hỏi ba điều kiện đáp ứng: Một giá trị phải có sẵn cho tất biến segment xác định mẫu URL Để tìm giá trị cho biến segment, hệ thống điều hướng xem giá trị bạn cung cấp (bằng cách sử dụng thuộc tính ẩn danh), sau giá trị biến cho yêu cầu tại, cuối xác định giá trị mặc định cho đường dẫn Khơng có giá trị cung cấp cho biến segment đồng ý với biến mặc định quy định đường dẫn Đây biến mà giá trị mặc định cung cấp, khơng xảy mẫu URL Ví dụ, định nghĩa đường dẫn này, myVar biến mặc định chỉ: routes.MapRoute ("MyRoute", "{controller} / {action}", new {myVar = "true"}); Đối với đường dẫn match, phải cẩn thận để không cung cấp giá trị cho myVar để đảm bảo giá trị làm nguồn cung cấp phù hợp với giá trị mặc định Các giá trị cho tất biến segment phải đáp ứng ràng buộc đường dẫn Xem "đường dẫn hạn chế" chương trước ví dụ loại khác ràng buộc Để rõ ràng: hệ thống điều hướng không cố gắng để tìm lộ trình cung cấp đường dẫn tốt nhất.Đường dẫn tìm thấy đầu match, lúc sử dụng đường dẫn để tạo URL; đường dẫn bỏ qua Vì lý này, bạn nên xác định đường dẫn cụ thể bạn Điều quan trọng để thử nghiệm hệ Liên kết ngoại bạn Nếu bạn cố gắng để tạo URL mà khơng có lộ trình phù hợp tìm thấy, bạn tạo liên kết có chứa thuộc tính href , này: About this application Các liên kết dựng view, không hoạt động dự định người dùng nhấp chuột Nếu bạn tạo URL (mà cho bạn cách làm sau chương này), sau kết rỗng, mà render chuỗi trống Bạn kiểm soát đường dẫn phù hợp cách sử dụng đường dẫn đặt tên Xem phần "Tạo URL từ Specific Route" cuối chương để biết chi tiết Việc đối tượng đường dẫn đáp ứng tiêu chí tạo URL rỗng, điều chấm dứt trình thực thi URL Các giá trị tham số lựa chọn thay cho tham số segment, với trình tự giá trị mặc định Nếu bạn cung cấp thông số rõ ràng mà không tương ứng với thông số segment thơng số mặc định, sau phương pháp nối chúng tập hợp chuỗi truy vấn cặp tên / giá trị Mục tiêu Controller khác Các phiên mặc định phương thức ActionLink giả định bạn muốn hướng đến phương thức Controller điều khiển gây điểm để trả lại Để tạo Liên kết ngoại mà hướng đến controller khác , bạn sử dụng overload cho phép bạn định tên controller, minh họa Listing 16-4 Listing 16-4 Hướng đến controller khác File ActionName.cshtml Chú ý Các hệ thống điều hướng khơng có kiến thức nhiều ứng dụng tạo URL xử lý yêu cầu đến Điều có nghĩa giá trị bạn cung cấp cho phương thức action controller không xác nhận, bạn phải cẩn thận không định mục tiêu không tồn Khi bạn dựng view, bạn thấy HTML sau tạo ra: This targets another controller Phương thức gọi cho URL mà phương thức action Index quản trị điều khiển thể / Admin phương thức ActionLink Các hệ thống điều hướng thơng minh biết đường dẫn xác định ứng dụng sử dụng số phương thức action theo mặc định, cho phép bỏ qua đoạn không cần thiết Các hệ thống điều hướng bao gồm đường dẫn xác định cách sử dụng thuộc tính đường dẫn xác định làm để hướng tới phương thức action cụ thể Trong Listing 16-5, bạn thấy thay đổi tên Controller ActionLink để nhắm vào action Index controller khách hang Listing 16-5 Targeting an Action Decorated with the Route Attribute in the Acti onName.cshtml Fil e Các liên kết tạo sau: This targets another controller Điều tương ứng với thuộc tính đường dẫn mà áp dụng cho số phương thức action controller khách hàng Chương 15: Truyền giá trị đặc biệt Bạn truyền giá trị cho biến segment sử dụng loại ẩn danh, với tính chất đại diện cho segment Listing 16-6 cung cấp ví dụ, mà tơi thêm vào tập tin view ActionName.cshtml Listing 16-6 Cung cấp giá trị cho biến Segment File ActionName.cshtml Tôi cung cấp giá trị cho biến segment gọi id Nếu ứng dụng sử dụng đường dẫn hiển thị Listing 16-3, sau đoạn HTML sau thực điểm: This is an outgoing URL Chú ý giá trị cung cấp thêm vào phần chuỗi truy vấn để phù hợp với mô hình URL mơ tả đường dẫn Bởi điều khơng có biến segment tương ứng với id đường dẫn Trong Listing 16-7, tơi chỉnh sửa đường dẫn tập tin RouteConfig.cs mà khơng có id segment Listing 16-7 Chỉnh sửa đường dẫn RouteConfig.cs file Khởi động ứng dụng lần bạn gọi lại phương thức hỗ trợ ActionLink view ActionName.cshtml từ phần tử HTML sau đây: This is an outgoing URL Lần này, giá trị, truy cập cho thuộc tính id đưa vào URL segment, phù hợp với đường dẫn hoạt động cấu hình ứng dụng Sử dụng lại biến Segment Khi mô tả cách mà đường dẫn phù hợp với Liên kết ngoại, tơi giải thích cố gắng tìm giá trị cho biến segment đường dẫn URL, hệ thống điều hướng xem xét giá trị yêu cầu Đây hành vi gây khó khăn cho nhiều người lập trình dẫn đến lỗi khó sữa Hãy tưởng tượng ứng dụng có đường dẫn nhất, sau: Routes.MapRoute ("MyRoute", "{controller} / {action} / {color} / {page}"); Bây tưởng tượng người sử dụng URL /Catalog/List/Purple/123, dựng cho liên kết sau: Việc gọi phương thức AreaRegistration.RegisterAllAreas làm cho MVC Framework truyền qua tất class ứng dụng, tìm kiếm từ class AreaRegistration gọi phương thức RegisterArea chúng Thận trọng Không thay đổi thứ tự báo cáo liên quan đến việc đường dẫn phương thức Application_Startphương Nếu bạn gọi RegisterRoutes trước AreaRegistration.RegisterAllAreas gọi,đường dẫn bạn phải định nghĩa trước đường dẫn khu vực Cho đường dẫn tính theo thứ tự, điều có nghĩa yêu cầu controller khu vực có khả kết hợp với đường dẫn sai Các class AreaRegistrationContext truyền qua phương pháp RegisterArea để thiết lập phương thức MapRoute mà khu vực sử dụng để đăng ký đường dẫn tương tự tạo ứng dụng bạn làm việc RegisterRoutes phương thức Global.asax Lưu ý Các phương thức MapRoute class tự động AreaRegistrationContext giới hạn đường dẫn khơng gian tên mà bạn đăng ký để chứa controller cho khu vực Điều có nghĩa bạn tạo controller khu vực, bạn phải để khơng gian tên mặc định nó; khơng, hệ thống điều hướng khơng thể tìm thấy Populating khu vực Bạn tạo controller, view cmodel khu vực giống bạn thấy ví dụ trước Để tạo controller, nhấp chuột phải vào thư mục controller khu vực Admin chọn Thêm Controller từ menu pop-up Chọn MVC Controller - rỗng từ danh sách tùy chọn, bấm vào nút Add, đặt tên cho controller nhấp vào nút Add để tạo class Controller Để chứng minh cách cô lập ẩn danh phần ứng dụng, thêm Home Controller tới khu vực Admin.Bạn xem nội dung khu vực tập tin / Admin / Controllers / HomeController.cs Listing 16-26 Listing 16-26 Nội dung khu vực / Admin / Controllers / HomeController.cs file Tôi không thay đổi code Controller Chỉ cần dựng giao diện view mặc định gắn liền với phương thức action Index đầy đủ cho ví dụ Tạo thư mục Areas/ Admin / Views / Home , kích chuột phải vào Solution Explorer chọn Add MVC View Page (Razor) từ menu Đặt tên cho Index.cshtml, nhấn OK để tạo tập tin chỉnh sửa nội dung cho phù hợp với thể Listing 16-27 Bảng liệt 16-27 Nội dung khu vực / Admin / Views / Home / Index.cshtml file Điểm tất điều thấy làm việc bên khu vực giống làm việc phần dự án MVC Nếu bạn khởi động ứng dụng đường dẫn đến / Admin / Home / Index, bạn thấy quan điểm thêm vào khu vực Admin, thể hình 16-7 Hình 16-7 Giải vấn đề khó khăn Controller Được rồi, tơi nói dối chút: khu vực khơng phải khép kín họ Nếu bạn đường dẫn đến / Home / Index URL, bạn thấy thông báo lỗi hiển thị Hình 16-8 Hình 16-8 Các lỗi điều khiển không rõ ràng Khi khu vực đăng ký, đường dẫn mà xác định giới hạn không gian tên gắn liền với khu vực Điều có nghĩa tơi yêu cầu / Admin / Home /Index nhận class HomeController UrlsAndRuutes.Areas.Admin.Controllers namespace Tuy nhiên, đường dẫn định nghĩa phương thức RegisterRoutes RouteConfig.cs không bị hạn chế Trong Listing 16-28, lời nhắc nhở, tơi liệt kê cấu hình đường dẫn ứng dụng ví dụ Bảng liệt 16-28 Cấu hình đường dẫn cho Ví dụ MVC App RouteConfig.cs file Các đường dẫn đặt tên MyRoute dịch tới URL đến từ trình duyệt đến action Index Home controller Tại thời điểm đó, tơi nhận lỗi, khơng hạn chế khơng gian tên đường dẫn MVC Framework thấy hai class Home Controller Để giải điều này, cần phải ưu tiên tên namspace controller tất đường dẫn mà dẫn đến xung đột, thể Listing 16-29 Lisitng 16-29 Giải xung đột khu vực Namespace RouteConfig.cs file Sự thay đổi đảm bảo controller dự án ưu tiên việc giải yêu cầu Tất nhiên, bạn muốn dành ưu tiên cho controller khu vực, bạn làm điều thay Creating Areas with Attributes Bạn tạo areas cách áp dụng thuộc tính RouteArea tới class controller Bạn xem làm phân chia phương thức action controller Customer đến khu vực gọi Services Listing 16-30 Listing 16-30 Tạo vùng Sử dụng thuộc tính File CustomerController.cs Thuộc tính RouteArea di chuyển đến tất đường dẫn xác định thuộc tính Route vào khu vực quy định Hiệu thuộc tính kết hợp với thuộc tính RoutePrefix có nghĩa để đạt việc tạo phương thức action CREATE, ví dụ, tơi có để tạo URL này: http://localhost:34855/Services/Users/Add/Adam/100 Các thuộc tính RouteArea khơng ảnh hưởng đến đường dẫn xác định thuộc tính đường dẫn bắt đầu ~ / Điều có nghĩa, ví dụ, ta tiếp tục đạt việc tạo phương thức action CREATE với URL này: http: // localhost: 34.855 / Test / Các RouteArea khơng có hiệu lực phương thức action mà thuộc tính Route chưa xác định, có nghĩa đường dẫn cho phương thức action LIST xác định tập tin RouteConfig.cs không đường dẫn dựa thuộc tính Generating Links to Actions in Areas Bạn khơng cần phải thực bước đặc biệt để tạo liên kết mà hướng đến actions khu vực MVC mà yêu cầu liên quan đến Các MVC Framework phát yêu cầu liên quan đến khu vực cụ thể đảm bảo Liên kết ngoại tìm thấy số đường dẫn quy định cho khu vực Ví dụ, thêm gọi đến Html.ActionLink helper từ view đến khu vực Admin sau: @Html.ActionLink("Click me", "About") sinh mã HTML sau đây: Click me Để tạo liên kết đến action khu vực khác , khơng có khu vực cả, bạn phải tạo biến gọi area sử dụng để định tên khu vực bạn muốn, này: @Html.ActionLink("Click me to go to another area", "Index", new { area = "Support" }) Chính lý mà area dành riêng để sử dụng tên biến segment HTML tạo cách sau (giả sử bạn tạo khu vực gọi SUPPORT mà có đường dẫn phù hợp theo quy định): Click me to go to another area Nếu bạn muốn liên kết đến action đến controller cao (một controller thư mục / Controllers ), sau bạn nên xác định khu vực chuỗi rỗng, này: @Html.ActionLink("Click me to go to another area", "Index", new { area = "" }) Các yêu cầu đường dẫn cho tập tin đĩa Không phải tất yêu cầu cho ứng dụng MVC cho controllers actions Hầu hết ứng dụng cần cách để cung cấp nội dung hình ảnh, tập tin HTML tĩnh, thư viện JavaScript, nhiều thứ Để ẩn danh, tạo thư mục CONTENT thêm vào tập tin gọi StaticContent.html để sử dụng item template HTML Page Listing 16-31 cho thấy nội dung tập tin HTML Bảng liệt 16-31 Nội dung File StaticContent.html HTML Static Content Đây html tĩnh nộp (~ / Content / StaticContent.html) Các hệ thống điều hướng cung cấp hỗ trợ tích hợp để phục vụ nội dung Nếu bạn khởi động ứng dụng yêu cầu URL /Content/StaticContent.html, bạn thấy nội dung tập tin HTML đơn giản hiển thị trình duyệt, thể hình 16-9 Hình 16-9 Yêu cầu tập tin nội dung tĩnh Theo mặc định, hệ thống điều hướng kiểm tra xem URL phù hợp với tập tin đĩa trước đánh giá đường dẫn ứng dụng, lý tơi khơng có thêm đường dẫn để có kết hình 16-9 Nếu có kết nối URL yêu cầu đĩa file, sau tập tin đĩa phục vụ đường dẫn xác định ứng dụng không sử dụng Hành vi đảo ngược để đường dẫn đánh giá trước tập tin đĩa cách thiết lập thuộc tính RouteExistingFiles RouteCollection tới true, Listing 16-32 Bảng liệt 16-32 Việc kích hoạt Route Đánh giá Trước File-checking RouteConfig.cs file Cấu hình máy chủ ứng dụng Visual Studio sử dụng IIS Express server ứng dụng cho dự án ứng dụng MVC Khơng làm tơi phải thiết lập thuộc tính RouteExistingFiles cho phương thức RegisterRoutes , phải nói với khơng với IIS Express để đánh chặn yêu cầu cho tập tin đĩa trước chúng truyền tới hệ thống điều hướng MVC Trước hết, bắt đầu IIS Express Cách dễ để làm điều để khởi động ứng dụng MVC từ Visual Studio, biểu tượng IIS Express xuất tác vụ Nhấp chuột phải vào biểu tượng chọn Show All ứng dụng từ menu pop-up Click vào UrlsAndRoutes cột Site Name để hiển thị thông tin cấu hình IIS, thể hình 16-10 Hình 16-10 Các thơng tin cấu hình IIS nhanh Click vào đường dẫn Config cửa sổ để mở tập tin cấu hình IIS Express Visual Studio Bây gõ Control + F tìm kiếm UrlRoutingModule4.0 Sẽ có mục tìm thấy phẩn modules tập tin cấu hình bạn cần phải thiết lập điều kiện tiên thuộc tính chuỗi rỗng, này: Bây khởi động lại ứng dụng Visual Studio cài đặt sửa đổi có hiệu đường dẫn đến /Content/StaticContent.html URL Thay xem nội dung file, bạn thấy thơng báo lỗi hiển thị hình 16-11 Lỗi xảy yêu cầu cho tập tin HTML thông qua với hệ thống điều hướng MVC có lộ trình phù hợp với URL việc yêu cầu controller CONTENT, điều khơng tồn Hình 16-11 u cầu URL nội dung tĩnh xử lý hệ thống điều hướng Xác định đường dẫn cho tập tin đĩa Một thuộc tính thiết lập thực sự, tơi xác định đường dẫn phù hợp với URL tương ứng với tập tin đĩa, thể Listing 16-33 Listing 16-33 Một Route URL Pattern Tương ứng với tập tin đĩa RouteConfig.cs file Bản đổ đường dẫn yêu cầu cho URL Content / StaticContent.html tới action LIST controller CUSTOMER Bạn xem đồ URL nơi làm việc hình 1612, mà tơi tạo cách bắt đầu ứng dụng đường dẫn đến /Content/StaticContent.html URL lần Hình 16-12 Chặn yêu cầu cho tập tin đĩa cách sử dụng tuyến đường Mẹo trình duyệt bạn cache phản ứng cũ, đặc biệt bạn sử dụng tính liên kết trình duyệt mô tả Chương 14 Nếu điều xảy ra, tải lại trang web bạn thấy phản hồi thể hình Đường dẫn yêu cầu dành cho tập tin đĩa đòi hỏi phải suy nghĩ cẩn thận, mẫu URL kết nối với URL Ví dụ, bạn thấy phần trước, yêu cầu cho /Content/StaticContent.html kết nối mẫu URL {controller} / {action} Trừ bạn cẩn thận, bạn có đưa số kết đặc biệt làm giảm hiệu suất Vì vậy, tùy chọn phương án cuối Bỏ qua Hệ thống điều hướng Thiết lập thuộc tính RouteExistingFiles , mà tơi chứng minh phần trước, làm cho hệ thống điều hướng tồn diện Các u cầu thơng thường bỏ qua hệ thống điều hướng đường dẫn Các đối tác tính có khả làm cho hệ thống điều hướng hòa nhập ngăn chặn URLs để đánh giá đường dẫn Điều thực cách sử dụng phương thức IgnoreRoute class RouteCollection , thể Listing 16-34 Listing 16-34 Sử dụng phương thức IgnoreRoute RouteConfig.cs file Bạn sử dụng biến segment {filename} để kết nối với loạt URL Trong trường hợp này, mẫu URL kết nối với hai segment URL mà phân đoạn Content nội dung thứ hai html mở rộng Các phương thức IgnoreRoute tạo RouteCollection,đó nơi xử lý đường dẫn thể trường hợp class StopRoutingHandler, MvcRouteHandler Hệ thống điều hướng mã hóa cứng để nhận xử lý Nếu mẫu URL truyền qua để kết nối với phương thức IgnoreRoute,mà sau khơng có đường dẫn để đánh giá, giống đường dẫn kết nối.Do đó, việc gọi phường thức IgnoreRoute quan trọng Nếu bạn bắt đầu ứng dụng đường dẫn đến /Content/StaticContent.html URL lần nữa, bạn thấy nội dung tập tin HTML đối tượng StopRoutingHandler xử lý trước đường dẫn khác kết nối với URL Sơ đồ thực tiễn URL tốt Sau tất điều này, bạn đặt câu hỏi nên đâu việc thiết kế đồ URL riêng bạn Bạn chấp nhận sơ đồ mặc định Visual Studio tạo cho bạn, có lợi ích việc đưa sơ đồ theo suy nghĩ bạn Trong năm gần đây, việc thiết kế URL ứng dụng thực ngày khó vài nguyên tắc thiết kế quan trọng xuất Nếu bạn làm theo mẫu thiết kế, bạn cải thiện khả sử dụng, tính tương thích, tăng khả tìm kiếm cơng cụ theo thứ tự mà ứng dụng bạn cần Làm gọn đường dẫn bạn thân thiện với người dùng Người dùng thông báo URLs ứng dụng bạn Nếu bạn khơng đồng ý, sau cần nghĩ lần cuối bạn cố gắng để gửi cho đến URL Amazon Dưới URL cho phiên trước sách này: http://www.amazon.com/Pro-ASP-NET-MVC-ProfessionalApress/dp/1430242361/ref=la_B001IU0SNK_1_5?ie=UTF8&qid=1349978167&sr=15 Điều khơng tốt gửi cho URL mà e-mail, bạn thử đọc qua điện thoại Khi cần làm điều thời gian gần đây, tơi trích dẫn số ISBN yêu cầu người gọi nhìn trực tiếp Nó tốt đẹp tơi truy cập vào sách với URL này: http://www.amazon.com/books/pro-aspnet-mvc5-framework Đó loại URL mà tơi đọc qua điện thoại không giống bỏ qn thứ soạn tin nhắn e-mail Lưu ý Để rõ ràng, phải có tơn trọng cao Amazon,nơi mà bán nhiều sách người khác cộng lại Tôi biết thực tế thành viên nhóm Amazon người thơng minh xinh đẹp Không số họ nhỏ mọn ngừng bán sách dù điều nhỏ lời trích định dạng URL họ Tơi u Amazon Tôi tôn thờ Amazon Tôi muốn họ sửa chữa URL họ Dưới số hướng dẫn đơn giản để làm cho URL thân thiện: Thiết kế URL để mô tả nội dung họ, thực chi tiết ứng dụng bạn Use /Articles/AnnualReport rather than /Website_v2/CachedContentServer/FromCache/AnnualReport Thích tiêu đề nội dung dựa số ID Use /Articles/AnnualReport /Articles/2392 Nếu bạn phải sử dụng số ID (để phân biệt với mặt hàng với chức danh giống hệt nhau, để tránh việc truy vấn sở liệu cần thêm để tìm mục theo tiêu đề nó), sau sử dụng hai( /Articles/2392/AnnualReport) Phải nhiều thời gian để gõ, có ý nghĩa người cải thiện thứ hạng cơng cụ tìm kiếm Ứng dụng bạn cần bỏ qua tiêu đề hiển thị mục phù hợp với ID Do khơng sử dụng phần mở rộng tên tập tin cho trang HTML (ví dụ, aspx mvc), sử dụng chúng loại tập tin đặc biệt (như jpg, pdf, zip) Trình duyệt Web khơng quan tâm phần mở rộng tên file bạn thiết lập kiểu MIME thích hợp, người mong đợi tập tin PDF để dễ dàng làm việc với đuôi pdf Tạo cảm giác hệ thống phân cấp (ví dụ, /Products/Menswear/Shirts/Red), khách truy cập bạn đốn hạng mục URL Trường hợp khơng nhạy cảm (Một người muốn gõ vào URL từ trang in.) Hệ thống điều hướng ASP.NET trường hợp không nhạy cảm mặc định Tránh ký hiệu, mã số, chuỗi ký tự Nếu bạn muốn từ tách biệt, sử dụng dấu gạch ngang (như /my-great-article) Gạch chân không thân thiện, khơng gian mã hóa URL kỳ lạ (/my+great+article) ghê tởm (/ my% 20great% 20article) Không thay đổi URL Liên kết bị hỏng làm bình đẳng kinh doanh Khi bạn thay đổi URL, tiếp tục hỗ trợ sơ đồ URL cũ lâu tốt thông qua chuyển hướng vĩnh viễn (301) Hãy quán Áp dụng định dạng URL toàn ứng dụng bạn URL nên ngắn gọn, dễ gõ, hack (con người chỉnh sửa), bền vững, họ nên hình dung cấu trúc trang web Jakob Nielsen, khả sử dụng guru, mở rộng chủ đề http://www.useit.com/alertbox/990321.html Tim Berners-Lee, người phát minh web, cung cấp lời khuyên tương tự (Xem http://www.w3.org/Provider/Style/URI ) GET POST: Chọn hai Quy tắc ngón tay GET u cầu sử dụng cho thông tin đọc, POST yêu cầu sử dụng cho hoạt động làm thay đổi trạng thái ứng dụng Trong điều kiện tiêu chuẩn , GET yêu cầu cho tương tác an tồn (khơng có tác dụng phụ ngồi truy xuất thơng tin), POST yêu cầu cho tương tác không an tồn ( định thay đổi đó) Những quy ước thiết lập World Wide Web Consortium (W3C), http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html GET yêu cầu lấy địa chỉ: tất thông tin chứa URL, đánh dấu liên kết đến địa Không sử dụng GET yêu cầu cho hoạt động thay đổi trạng thái Nhiều nhà phát triển Web học điều cách khó khăn năm 2005, Google Web Acceleratorđã phát hành cộng đồng Ứng dụng trước lấy tất nội dung liên kết từ trang, điều thuộc HTTP GET u cầu phải an tồn Thật khơng may, nhiều nhà phát triển Web bỏ qua công ước HTTP đặt liên kết đơn giản để "xóa mục" "thêm vào giỏ hàng" ứng dụng họ Một công ty tin hệ thống quản lý nội dung họ mục tiêu kẻ phá hoại lặp lặp lại nhiều lần, tất nội dung họ giữ bị xóa.Sau họ phát trình thu thập cơng cụ tìm kiếm va chạm URL trang admin điều làm xóa liên kết Xác thực bảo vệ bạn khỏi điều này, khơng bảo vệ bạn từ máy tốc độ Web Tóm lược Trong chương này, chúng tơi cho bạn tính tiên tiến hệ thống điều hướng MVC Framework, Hiển thị cho bạn làm để tạo liên kết bên URL, làm để tùy chỉnh hệ thống điều hướng Xuyên suốt chặng đường, giới thiệu khái niệm areas thiết lập views làm để tạo sơ đồ URL hữu ích có ý nghĩa Trong chương tiếp theo, tơi chuyển sang controllers actions, trọng tâm MVC Framework Tơi giải thích công việc cụ thể cho bạn thấy làm để sử dụng chúng để có kết tốt ứng dụng bạn ... controller tiếp nhận yêu cầu kế thừa Tôi gọi controller LegacyController, nội dung thể Listing 16- 16 Listing 16- 16 Nội dung tập tin LegacyController.cs Trong controller đơn giản này, phương thức action... Listing 16- 23 Listing 16- 23 Sử dụng Custom Routing Handler RouteConfig.cs file Khi yêu cầu URL / SayHello, người sử dụng đường dẫn tùy chỉnh xử lý yêu cầu Hình 16- 5 cho thấy kết Hình 16- 5 Sử... duyệt để đường dẫn đến URL root, minh họa hình 16- 1 Hình 16- 1 HTML phương thức ActionLink tạo dựa cấu hình đường dẫn.Ví dụ, cách sử dụng quy định Listing 16- 1 (và giả định quan điểm đưa yêu cầu đến

Ngày đăng: 23/10/2019, 21:17

Tài liệu cùng người dùng

Tài liệu liên quan