Computer >> Máy Tính >  >> Lập trình >> C#

Định tuyến trong C # ASP.NET Core là gì?

Định tuyến được sử dụng để ánh xạ các yêu cầu tới các trình xử lý định tuyến.

Các tuyến được định cấu hình khi ứng dụng khởi động và có thể trích xuất các giá trị từURL sẽ được sử dụng để xử lý yêu cầu.

Khái niệm cơ bản về định tuyến

Định tuyến sử dụng các tuyến (triển khai IRouter)

  • ánh xạ các yêu cầu đến với trình xử lý định tuyến
  • tạo các URL được sử dụng trong các câu trả lời

Định tuyến được kết nối với đường ống phần mềm trung gian bởi lớp RouterMiddleware .ASP.NET MVC thêm định tuyến vào đường ống phần mềm trung gian như một phần của cấu hình của nó

Đối sánh URL

Các yêu cầu đến nhập vào RouterMiddleware gọi phương thức RouteAsync trên từng tuyến theo trình tự.

Cá thể IRouter chọn có xử lý yêu cầu hay không bằng cách đặt Trình xử lýRouteContext thành RequestDelegate không rỗng.

Nếu một trình xử lý được đặt một tuyến, nó sẽ được gọi để xử lý yêu cầu và không có tuyến nào được xử lý thêm.

Nếu tất cả các tuyến được thực thi và không tìm thấy trình xử lý nào cho một yêu cầu, thì văn bản gọi của phần mềm trung gian và phần mềm trung gian tiếp theo trong đường dẫn yêu cầu sẽ được gọi.

Tạo URL

Việc tạo URL tuân theo một quy trình lặp đi lặp lại tương tự, nhưng bắt đầu bằng cách gọi mã người dùng hoặc mã khung vào phương thức GetVirtualPath của bộ sưu tập tuyến đường.

Mỗi tuyến sau đó sẽ có phương thức GetVirtualPath của nó được gọi theo thứ tự cho đến khi anon-null VirtualPathData được trả về

Tạo tuyến đường

Định tuyến cung cấp lớp Tuyến đường như là cách triển khai tiêu chuẩn của IRouter. Route sử dụng cú pháp mẫu tuyến đường để xác định các mẫu sẽ khớp với đường dẫnURL khi RouteAsync được gọi.

Tuyến đường sẽ sử dụng cùng một mẫu tuyến đường để tạo URL khi GetVirtualPath được gọi.

Ví dụ

routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");

Khung cung cấp một tập hợp các phương pháp mở rộng để tạo các tuyến như -

MapRoute
MapGet
MapPost
MapPut
MapRoute
MapVerb