Chắc chắn có một số chồng chéo khái niệm giữa TagHelpers và ViewComponents. TagHelpers là tiện ích của bạn để làm việc với HTML, nơi ViewComponents là cách của bạn để dính vào C#, làm công việc bị cô lập và sau đó nhổ HTML. Tôi sẽ đi sâu vào từng chi tiết:
ViewComponents
Bộ điều khiển nhỏ tương đương về khái niệm của bạn; bạn sẽ thấy rằng nhiều phương thức/thuộc tính mà ViewComponents trưng ra rất quen thuộc với những phương thức tồn tại trên một Controller. Bây giờ là để gọi ViewComponents, điều đó tương đương với việc sử dụng các trình trợ giúp HTML (một điều mà TagHelpers làm cho tốt hơn). Để tổng hợp ViewComponents: Mục đích chính của chúng là cảm thấy như một bộ điều khiển, ở trong vùng đất C# (có thể không cần phải thêm tiện ích vào HTML), làm công việc nhỏ hơn/bị cô lập và sau đó nhổ HTML bị xâu chuỗi.
TagHelpers
Một tiện ích cho phép bạn làm việc cùng phía HTML đang tồn tại hoặc tạo ra các phần tử HTML mới sửa đổi những gì xảy ra trên một trang. Không giống như ViewComponents TagHelpers có thể nhắm mục tiêu bất kỳ HTML hiện có nào và sửa đổi hành vi của nó; ví dụ: bạn có thể thêm một thuộc tính có điều kiện có điều kiện cho tất cả các phần tử HTML có điều kiện sẽ hiển thị phía máy chủ phần tử. TagHelpers cũng cho phép bạn trộn lẫn thuật ngữ HTML thông thường, ví dụ:
<myTagHelper class="btn">Some Content</myTagHElper>
Như bạn có thể thấy chúng ta đang thêm một thuộc tính lớp để TagHelper của chúng tôi cũng giống như thể nó là HTML. Để làm điều này trong ViewComponents, bạn cần phải chuyển vào một từ điển thuộc tính hoặc một cái gì đó tương đương (không tự nhiên). Cuối cùng, nhiều TagHelpers có thể chạy trên một phần tử HTML duy nhất; mỗi người có giai đoạn riêng của họ tại sửa đổi đầu ra (cho phép nhập cho các bộ công cụ mô-đun TagHelper). Để tổng hợp TagHelpers: Họ có thể làm bất cứ điều gì mà ViewComponents có thể làm và nhiều NHƯNG không cảm thấy quen thuộc với những thứ như Controllers mà các nhà phát triển ASP.NET đã quen; cũng một số dự án có thể không muốn xen kẽ HTML phía máy chủ.
Thêm:
Gần đây, tôi đã trình chiếu video về những lợi ích của TagHelpers. Về cơ bản là đi qua những gì họ giỏi và cách sử dụng chúng. Bạn có thể xem nó here.
Nguồn
2014-12-10 19:44:42
Bạn có thể bọc ViewComponent của mình trong một TagHelper tùy chỉnh như [được mô tả ở đây] (https://stackoverflow.com/questions/44913297/is-it-possible-to-call-viewcomponent-from-custom-taghelper-in- asp-net-mvc-6). Bằng cách này, bạn sẽ có thể truy cập đánh dấu HTML bên trong TagHelper và chuyển nó vào ViewComponent khi cần thiết. – IlliakaillI