View Component là gì?

View Components là một tính năng mới trong ASP.NET Core MVC, tương tự như partial views nhưng mạnh hơn nhiều. Chúng đặc biệt hữu ích cho những phần giao diện có logic phức tạp, như:
  • Navigation menus
  • Shopping cart sidebar
  • Login panel
  • Recent posts widget
  • Admin dashboards
Lưu ý: View Components hoàn toàn tương thích với Razor Pages và có thể được sử dụng ở bất kỳ đâu bạn cần logic phức tạp kết hợp với rendering.

View Component vs Partial View


Tạo View Component

Bước 1: Tạo View Component Class

Tạo class kế thừa từ ViewComponent:

Bước 2: Tạo Razor View

Tạo view tại đường dẫn:

Quy ước đặt tên

Class Name

View Name

Theo mặc định, View Component tìm view tên Default:

Gọi View Component

Từ View

Tag Helper (Khuyến nghị)

Tag Helper (Razor Class Library)

Từ Controller

Từ Razor Page


View Component với Strongly-Typed Data

Định nghĩa Model

View Component Class

Razor View với Strong Type


View Component Synchronous

Nếu không cần async, có thể override phương thức Invoke:

Các phương thức View Component

View Method

Content Method

Other Methods


View Component Context

ViewContext

Truy cập HttpContext, RouteData, và các thông tin request:

ViewBag trong View Component


View Component trong Razor Class Library

Cấu trúc thư mục

Đăng ký trong Program.cs

Sử dụng


Dependency Injection trong View Component

Constructor Injection

Đăng ký Service


Ví dụ: Shopping Cart View Component

ShoppingCartViewComponent.cs

Default.cshtml

Sử dụng trong Layout


So sánh: Các cách gọi View Component


Tài liệu tham khảo