Những thuộc tính của Routes trong ASP.NET Core
Trong chương này, chúng ta sẽ tìm hiểu một cách tiếp cận khác để định tuyến và đó là định tuyến dựa trên thuộc tính. Với định tuyến dựa trên thuộc tính, chúng ta có thể sử dụng các thuộc tính C # trên các lớp trình điều khiển và trên các phương thức bên trong các lớp này. Các thuộc tính này có siêu dữ liệu cho ASP.NET Core biết khi nào cần gọi một bộ điều khiển cụ thể.
Nó là một thay thế cho định tuyến dựa trên quy ước.
Các tuyến đường được đánh giá theo thứ tự xuất hiện, thứ tự mà bạn đăng ký, nhưng khá phổ biến để ánh xạ nhiều tuyến đường, đặc biệt nếu bạn muốn có các tham số khác nhau trong URL hoặc nếu bạn muốn có các chữ khác nhau trong URL.
Thí dụ
Hãy để chúng tôi lấy một ví dụ đơn giản. Mở dự án FirstAppDemo và chạy ứng dụng trong trình duyệt. Khi bạn chỉ định / about, nó sẽ tạo ra đầu ra sau
Điều chúng tôi muốn ở đây là khi chúng tôi chỉ định / giới thiệu, ứng dụng sẽ gọi hành động Điện thoại của AboutContoder. Tại đây, chúng ta có thể thực thi một số tuyến rõ ràng cho bộ điều khiển này bằng thuộc tính Tuyến. Thuộc tính này nằm trong không gian tên Microsoft.AspNet.Mvc.
Sau đây là việc triển khai AboutContoder trong đó các tuyến thuộc tính được thêm vào.
using Microsoft.AspNet.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FirstAppDemo.Controllers { [Route("about")] public class AboutController { [Route ("")] public string Phone() { return "+49-333-3333333"; } [Route("country")] public string Country() { return "Germany"; } } }
Ở đây, chúng tôi muốn tuyến đường này trông giống như và đối với hành động Điện thoại, chúng tôi đã chỉ định một chuỗi trống, điều đó có nghĩa là chúng tôi không cần hành động được chỉ định để có được phương thức này. Người dùng chỉ cần đến / về. Đối với hành động Quốc gia, chúng tôi đã chỉ định quốc gia trên mạng trong thuộc tính tuyến đường. Hãy để chúng tôi lưu AboutContoder, làm mới trình duyệt của bạn và đi tới / about và sẽ cung cấp cho bạn hành động Điện thoại.
Hãy để chúng tôi chỉ định / về / quốc gia. Điều này sẽ cho phép bạn có được hành động của Quốc gia đó.
Nếu bạn muốn một phân đoạn URL chứa tên của bộ điều khiển của bạn, điều bạn có thể làm là thay vì sử dụng tên bộ điều khiển một cách rõ ràng, bạn có thể sử dụng bộ điều khiển mã thông báo bên trong dấu ngoặc vuông. Điều này báo cho ASP.NET MVC sử dụng tên của bộ điều khiển này ở vị trí này như được hiển thị trong chương trình sau.
using Microsoft.AspNet.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FirstAppDemo.Controllers { [Route("[controller]")] public class AboutController { [Route ("")] public string Phone() { return "+49-333-3333333"; } [Route("[action]")] public string Country() { return "Germany"; } } }
This way, if you ever rename the controller, you don't have to remember to change the route. The same goes for an action and implicitly there is a slash (/) between the controller and the action. It is a hierarchical relationship between the controller and the action just like it is inside the URL. Let us save this controller again. Most probably, you will see the same results.
Let us specify the /about/country. This will allow you to get to that Country action.